Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Предупреждение в плане выполнения запроса  [new]
Александр52
Member

Откуда: Кокосовые острова ส็็็็็
Сообщений: 5136
Добрый день!
При изучении плана выполнения запроса обратил внимание на знак восклицания(предупреждение).
Пишет "Нет предиката соединения."
В самом запросе предикат конечно есть:)
подскажите что это и как это предупреждение убрать и вообще насколько оно критично)
Скрин чуть ниже по ссылке:

http://clip2net.com/s/2Kccy
23 янв 13, 11:46    [13814164]     Ответить | Цитировать Сообщить модератору
 Re: Предупреждение в плане выполнения запроса  [new]
Добрый Э - Эх
Guest
не видя текста запроса трудно сказать- есть там предикат или нет...
23 янв 13, 11:48    [13814173]     Ответить | Цитировать Сообщить модератору
 Re: Предупреждение в плане выполнения запроса  [new]
Glory
Member

Откуда:
Сообщений: 104751
Александр52
Пишет "Нет предиката соединения."
В самом запросе предикат конечно есть:)

Ага, а очень многие при сообщении сервере о некорректном синтаксисе мамой клянутся, что синтаксис у них верный.
23 янв 13, 11:50    [13814190]     Ответить | Цитировать Сообщить модератору
 Re: Предупреждение в плане выполнения запроса  [new]
Александр52
Member

Откуда: Кокосовые острова ส็็็็็
Сообщений: 5136
SELECT  [TableAlias].[State], [TableAlias].[CreateDate], [TableAlias].[ChangeDate], [TableAlias].[Company], [TableAlias].[CertificationAuthority], [TableAlias].[PriceECP], [TableAlias].[IsPaidClient], [TableAlias].[IsInApplicationToAct], [TableAlias].[IsPaidTP], [TableAlias].[TradePlatform], [TableAlias].[PriceSum], [TableAlias].[PriceSumUC], [TableAlias].[PriceSumAETP], [TableAlias].[Source], [TableAlias].[EcpCreateDate], [TableAlias].[EcpOwner], [TableAlias].[ContactPerson], (''+ISNULL([ALIAS_2710927543819812794].[Surname],'')+' '+ISNULL([ALIAS_2710927543819812794].[Name],'')+' '+ISNULL([ALIAS_2710927543819812794].[Fname],'')+'') AS [_ContactPerson_SurnameAlias], [TableAlias].[AuthorizedPerson], (''+ISNULL([ALIAS_9970789320202499643].[Surname],'')+' '+ISNULL([ALIAS_9970789320202499643].[Name],'')+' '+ISNULL([ALIAS_9970789320202499643].[Fname],'')+'') AS [_AuthorizedPerson_SurnameAlias], [TableAlias].[ImplementedWorkCertificate], [TableAlias].[QuerySeldon], [TableAlias].[TenderCredit], [TableAlias].[BankGuaranty], [TableAlias].[IsVisibleComSite], [TableAlias].[PriceRange], [TableAlias].[IsReissue], [TableAlias].[EcpLoadDate], [TableAlias].[Ads], [TableAlias].[GovOrder], [TableAlias].[ResponsibleUser], [TableAlias].[SourceType], [TableAlias].[EcpRequestDestinationTypes], [TableAlias].[DocumentOwner], [TableAlias].[ID] FROM  dbo.[Custom_EcpRequestTable]  AS TableAlias  with(NOLOCK)
LEFT JOIN dbo.[PersonTable] AS ALIAS_2710927543819812794 ON [TableAlias].[ContactPerson] = [ALIAS_2710927543819812794].[ID]
LEFT JOIN dbo.[PersonTable] AS ALIAS_9970789320202499643 ON [TableAlias].[AuthorizedPerson] = [ALIAS_9970789320202499643].[ID]
LEFT JOIN dbo.[UserTable] AS ALIAS_15718268973866606336 ON [TableAlias].[DocumentOwner] = [ALIAS_15718268973866606336].[ID]
LEFT JOIN dbo.Role2Rekursive(1) AS ALIAS_189350526785979260 ON [ALIAS_15718268973866606336].[Role2] = [ALIAS_189350526785979260].[ID]
JOIN dbo.UserRekursive(8666) AS ALIAS_9682147205914726017 ON [ALIAS_15718268973866606336].[ID] = [ALIAS_9682147205914726017].[ID]
LEFT JOIN
(
SELECT  Distinct TOP 999999999  [ALIAS_10740845074870805481].[CustomObjectID] FROM  dbo.[CustomObjectHistoryTable]  AS ALIAS_10740845074870805481  with(NOLOCK)
JOIN dbo.[CustomObjectMetaDataTable] AS ALIAS_7827747817943929496 ON [ALIAS_10740845074870805481].[MetaDataID] = [ALIAS_7827747817943929496].[ID]
LEFT JOIN dbo.[UserTable] AS ALIAS_12771998885076067577 ON [ALIAS_10740845074870805481].[DocOwnerID] = [ALIAS_12771998885076067577].[ID]
JOIN dbo.Role2Rekursive(1) AS ALIAS_189350526785979260 ON [ALIAS_12771998885076067577].[Role2] = [ALIAS_189350526785979260].[ID]
WHERE ( ([ALIAS_7827747817943929496].[Name] = 'EcpRequest') )
)
AS ALIAS_10740845074870805481 ON [TableAlias].[ID] = [ALIAS_10740845074870805481].[CustomObjectID]
WHERE ( (([ALIAS_10740845074870805481].[CustomObjectID] IS NOT NULL) OR ([ALIAS_189350526785979260].[ID] IS NOT NULL)) )
23 янв 13, 11:50    [13814191]     Ответить | Цитировать Сообщить модератору
 Re: Предупреждение в плане выполнения запроса  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Александр52,

Оптимизатор решил сделать join (логический оператор "внутреннее соединение" в плане запроса) между записями из таблицы CustomObjectHistoryTable и записями из таблицы UserTable (конечно, берутся не все подряд записи таблиц, а отобранные по фильтру). В итоге получился Cross join — потому что между этими таблицами действительно нет предиката соединения. О чём и было выдано предупреждение.

Если скорость запроса вас устраивает, то ничего делать не надо.
23 янв 13, 12:48    [13814648]     Ответить | Цитировать Сообщить модератору
 Re: Предупреждение в плане выполнения запроса  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Александр52,

WHERE ( (([ALIAS_10740845074870805481].[CustomObjectID] IS NOT NULL) OR ([ALIAS_189350526785979260].[ID] IS NOT NULL)) )
Вот этот OR может быть проблемой.
23 янв 13, 22:40    [13818407]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить