Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Странная работа с Хранимками!  [new]
C...R...a...S...H
Member

Откуда:
Сообщений: 188
Народ подскажите, может я чего-то не понимаю
У меня есть хранимка в которой по переданному ей условию выполняется тот или иной запрос.
При выполнении этой хранимки Execution plan показывает будто бы он выполняет все возможные запросы в этой хранимки из-за этого время выполнения просто зашкаливает!!!
Как от этого избавиться
30 янв 06, 11:09    [2299701]     Ответить | Цитировать Сообщить модератору
 Re: Странная работа с Хранимками!  [new]
Glory
Member

Откуда:
Сообщений: 104760
C...R...a...S...H
Народ подскажите, может я чего-то не понимаю
У меня есть хранимка в которой по переданному ей условию выполняется тот или иной запрос.
При выполнении этой хранимки Execution plan показывает будто бы он выполняет все возможные запросы в этой хранимки из-за этого время выполнения просто зашкаливает!!!
Как от этого избавиться

План строится ДО выполнениия.
И т.к. значения параметров на данный момент неизвестны, то план строится для всех команд процедуры.
30 янв 06, 11:10    [2299712]     Ответить | Цитировать Сообщить модератору
 Re: Странная работа с Хранимками!  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2387
Блог
C...R...a...S...H
Народ подскажите, может я чего-то не понимаю
У меня есть хранимка в которой по переданному ей условию выполняется тот или иной запрос.
При выполнении этой хранимки Execution plan показывает будто бы он выполняет все возможные запросы в этой хранимки из-за этого время выполнения просто зашкаливает!!!
Как от этого избавиться
Товарищи ученые, у меня в подвале подземные стуки. Объясните явление.

Текст процедуры - в студию. Можно без излишних подробностей (навороченных селектов, комметнариев и пр.), только структуру.
30 янв 06, 11:12    [2299719]     Ответить | Цитировать Сообщить модератору
 Re: Странная работа с Хранимками!  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2387
Блог
Glory
План строится ДО выполнениия.
И т.к. значения параметров на данный момент неизвестны, то план строится для всех команд процедуры.
Я конечно давно мс сиквел юзал, но всё же...

Это точно так? А то помнится мне пример из БОЛ, в котором предлагалось разносить разные запросы по процедурам и вызывать уже их в зависимости от входных параметров. Именно под тем флагом, что каждому запросу по плану!
30 янв 06, 11:14    [2299731]     Ответить | Цитировать Сообщить модератору
 Re: Странная работа с Хранимками!  [new]
C...R...a...S...H
Member

Откуда:
Сообщений: 188
ALTER PROCEDURE dbo.Select_tblContract
@IDContract int=-1,
@IDClient int=-1
AS
SET CONCAT_NULL_YIELDS_NULL OFF
if @IDContract<>-1 and @IDClient<>-1
SELECT tblContract_1.IDContract, tblContract_1.IDClient, tblContract_1.IDProject, tblContract_1.IDCycleDocument, tblContract_1.DateBeginCycle, tblContract_1.NumberContract,
tblContract_1.IDClientFirma, tblContract_1.IDTitleDocument, tblContract_1.IDClientPay, tblContract_1.DateContract, tblContract_1.DateBegin, tblContract_1.DateEnd,
tblContract_1.IDContractNext, tblContract_1.NumberStage, tblContract_1.DateBeginStage, tblContract_1.DateEndStage, tblContract_1.Closed, tblContract_1.ForNDS,
tblContract_1.NoMoney, tblContract_1.CodeBuh, tblContract_1.NumberContractBuh, tblContract_1.Comment, tblContract_1.CommentPlus, tblContract_1.IDKindPay, tblContract_1.Cash,
tblContract_1.IDEmployeeCom, tblContract_1.CommentAccount, tblContract_1.PathContract, tblContract_1.NameService, tblClient_1.Title AS Client, sprProject.Title AS Project,
sprCycleDocument.Title AS CycleDocument, tblClient.Title AS ClientPay, tblClient_2.Title AS ClientFirma, sprTitleDocument.Title AS TitleDocument,
tblContract.NumberContract AS ContractNext, sprKindPay.Title AS KindPay, tblEmployee.SurName + ' ' + tblEmployee.Title + ' ' + tblEmployee.Patronymic AS EmployeeCom
FROM tblClient AS tblClient_2 RIGHT OUTER JOIN
tblClient RIGHT OUTER JOIN
tblContract AS tblContract_1 LEFT OUTER JOIN
sprKindPay ON tblContract_1.IDKindPay = sprKindPay.IDKindPay LEFT OUTER JOIN
tblContract ON tblContract_1.IDContractNext = tblContract.IDContract LEFT OUTER JOIN
sprTitleDocument ON tblContract_1.IDTitleDocument = sprTitleDocument.IDTitleDocument ON tblClient.IDClient = tblContract_1.IDClientPay LEFT OUTER JOIN
tblClient AS tblClient_1 ON tblContract_1.IDClient = tblClient_1.IDClient LEFT OUTER JOIN
sprProject ON tblContract_1.IDProject = sprProject.IDProject ON tblClient_2.IDClient = tblContract_1.IDClientFirma LEFT OUTER JOIN
sprCycleDocument ON tblContract_1.IDCycleDocument = sprCycleDocument.IDCycleDocument LEFT OUTER JOIN
tblEmployee INNER JOIN
tblEmployeeClient ON tblEmployee.IDEmployee = tblEmployeeClient.IDEmployee AND tblEmployee.IDEmployee = tblEmployeeClient.IDEmployee ON
tblContract_1.IDEmployeeCom = tblEmployeeClient.IDEmployeeClient
WHERE (tblContract_1.IDContract <> @IDContract) AND (tblContract_1.IDClient = @IDClient)
ORDER BY tblContract_1.DateEnd DESC
else
if @IDContract<>-1
SELECT tblContract_1.IDContract, tblContract_1.IDClient, tblContract_1.IDProject, tblContract_1.IDCycleDocument, tblContract_1.DateBeginCycle, tblContract_1.NumberContract,
tblContract_1.IDClientFirma, tblContract_1.IDTitleDocument, tblContract_1.IDClientPay, tblContract_1.DateContract, tblContract_1.DateBegin, tblContract_1.DateEnd,
tblContract_1.IDContractNext, tblContract_1.NumberStage, tblContract_1.DateBeginStage, tblContract_1.DateEndStage, tblContract_1.Closed, tblContract_1.ForNDS,
tblContract_1.NoMoney, tblContract_1.CodeBuh, tblContract_1.NumberContractBuh, tblContract_1.Comment, tblContract_1.CommentPlus, tblContract_1.IDKindPay, tblContract_1.Cash,
tblContract_1.IDEmployeeCom, tblContract_1.CommentAccount, tblContract_1.PathContract, tblContract_1.NameService, tblClient_1.Title AS Client, sprProject.Title AS Project,
sprCycleDocument.Title AS CycleDocument, tblClient.Title AS ClientPay, tblClient_2.Title AS ClientFirma, sprTitleDocument.Title AS TitleDocument,
tblContract.NumberContract AS ContractNext, sprKindPay.Title AS KindPay, tblEmployee.SurName + ' ' + tblEmployee.Title + ' ' + tblEmployee.Patronymic AS EmployeeCom
FROM tblClient AS tblClient_2 RIGHT OUTER JOIN
tblClient RIGHT OUTER JOIN
tblContract AS tblContract_1 LEFT OUTER JOIN
sprKindPay ON tblContract_1.IDKindPay = sprKindPay.IDKindPay LEFT OUTER JOIN
tblContract ON tblContract_1.IDContractNext = tblContract.IDContract LEFT OUTER JOIN
sprTitleDocument ON tblContract_1.IDTitleDocument = sprTitleDocument.IDTitleDocument ON tblClient.IDClient = tblContract_1.IDClientPay LEFT OUTER JOIN
tblClient AS tblClient_1 ON tblContract_1.IDClient = tblClient_1.IDClient LEFT OUTER JOIN
sprProject ON tblContract_1.IDProject = sprProject.IDProject ON tblClient_2.IDClient = tblContract_1.IDClientFirma LEFT OUTER JOIN
sprCycleDocument ON tblContract_1.IDCycleDocument = sprCycleDocument.IDCycleDocument LEFT OUTER JOIN
tblEmployee INNER JOIN
tblEmployeeClient ON tblEmployee.IDEmployee = tblEmployeeClient.IDEmployee AND tblEmployee.IDEmployee = tblEmployeeClient.IDEmployee ON
tblContract_1.IDEmployeeCom = tblEmployeeClient.IDEmployeeClient
WHERE (tblContract_1.IDContract = @IDContract)
ORDER BY tblContract_1.DateEnd DESC
else
if @IDClient<>-1
SELECT tblContract_1.IDContract, tblContract_1.IDClient, tblContract_1.IDProject, tblContract_1.IDCycleDocument, tblContract_1.DateBeginCycle, tblContract_1.NumberContract,
tblContract_1.IDClientFirma, tblContract_1.IDTitleDocument, tblContract_1.IDClientPay, tblContract_1.DateContract, tblContract_1.DateBegin, tblContract_1.DateEnd,
tblContract_1.IDContractNext, tblContract_1.NumberStage, tblContract_1.DateBeginStage, tblContract_1.DateEndStage, tblContract_1.Closed, tblContract_1.ForNDS,
tblContract_1.NoMoney, tblContract_1.CodeBuh, tblContract_1.NumberContractBuh, tblContract_1.Comment, tblContract_1.CommentPlus, tblContract_1.IDKindPay, tblContract_1.Cash,
tblContract_1.IDEmployeeCom, tblContract_1.CommentAccount, tblContract_1.PathContract, tblContract_1.NameService, tblClient_2.Title AS ClientFirma,
tblEmployee.SurName + ' ' + tblEmployee.Title + ' ' + tblEmployee.Patronymic AS EmployeeCom
FROM tblClient AS tblClient_2 RIGHT OUTER JOIN
tblContract AS tblContract_1 ON tblClient_2.IDClient = tblContract_1.IDClientFirma LEFT OUTER JOIN
tblEmployee INNER JOIN
tblEmployeeClient ON tblEmployee.IDEmployee = tblEmployeeClient.IDEmployee AND tblEmployee.IDEmployee = tblEmployeeClient.IDEmployee ON
tblContract_1.IDEmployeeCom = tblEmployeeClient.IDEmployeeClient
WHERE (tblContract_1.IDClient = @IDClient)
ORDER BY tblContract_1.DateEnd DESC
/*
SELECT tblContract_1.IDContract, tblContract_1.IDClient, tblContract_1.IDProject, tblContract_1.IDCycleDocument, tblContract_1.DateBeginCycle, tblContract_1.NumberContract,
tblContract_1.IDClientFirma, tblContract_1.IDTitleDocument, tblContract_1.IDClientPay, tblContract_1.DateContract, tblContract_1.DateBegin, tblContract_1.DateEnd,
tblContract_1.IDContractNext, tblContract_1.NumberStage, tblContract_1.DateBeginStage, tblContract_1.DateEndStage, tblContract_1.Closed, tblContract_1.ForNDS,
tblContract_1.NoMoney, tblContract_1.CodeBuh, tblContract_1.NumberContractBuh, tblContract_1.Comment, tblContract_1.CommentPlus, tblContract_1.IDKindPay, tblContract_1.Cash,
tblContract_1.IDEmployeeCom, tblContract_1.CommentAccount, tblContract_1.PathContract, tblContract_1.NameService, tblClient_1.Title AS Client, sprProject.Title AS Project,
sprCycleDocument.Title AS CycleDocument, tblClient.Title AS ClientPay, tblClient_2.Title AS ClientFirma, sprTitleDocument.Title AS TitleDocument,
tblContract.NumberContract AS ContractNext, sprKindPay.Title AS KindPay, tblEmployee.SurName+' ' + tblEmployee.Title +' '+ tblEmployee.Patronymic AS EmployeeCom
FROM tblClient AS tblClient_2 RIGHT OUTER JOIN
tblClient RIGHT OUTER JOIN
tblContract AS tblContract_1 LEFT OUTER JOIN
sprKindPay ON tblContract_1.IDKindPay = sprKindPay.IDKindPay LEFT OUTER JOIN
tblContract ON tblContract_1.IDContractNext = tblContract.IDContract LEFT OUTER JOIN
sprTitleDocument ON tblContract_1.IDTitleDocument = sprTitleDocument.IDTitleDocument ON tblClient.IDClient = tblContract_1.IDClientPay LEFT OUTER JOIN
tblClient AS tblClient_1 ON tblContract_1.IDClient = tblClient_1.IDClient LEFT OUTER JOIN
sprProject ON tblContract_1.IDProject = sprProject.IDProject ON tblClient_2.IDClient = tblContract_1.IDClientFirma LEFT OUTER JOIN
sprCycleDocument ON tblContract_1.IDCycleDocument = sprCycleDocument.IDCycleDocument LEFT OUTER JOIN
tblEmployee INNER JOIN
tblEmployeeClient ON tblEmployee.IDEmployee = tblEmployeeClient.IDEmployee AND tblEmployee.IDEmployee = tblEmployeeClient.IDEmployee ON
tblContract_1.IDEmployeeCom = tblEmployeeClient.IDEmployeeClient
WHERE (tblContract_1.IDClient = @IDClient)
ORDER BY tblContract_1.DateEnd DESC
*/
else
SELECT tblContract_1.IDContract, tblContract_1.IDClient, tblContract_1.IDProject, tblContract_1.IDCycleDocument, tblContract_1.DateBeginCycle, tblContract_1.NumberContract,
tblContract_1.IDClientFirma, tblContract_1.IDTitleDocument, tblContract_1.IDClientPay, tblContract_1.DateContract, tblContract_1.DateBegin, tblContract_1.DateEnd,
tblContract_1.IDContractNext, tblContract_1.NumberStage, tblContract_1.DateBeginStage, tblContract_1.DateEndStage, tblContract_1.Closed, tblContract_1.ForNDS,
tblContract_1.NoMoney, tblContract_1.CodeBuh, tblContract_1.NumberContractBuh, tblContract_1.Comment, tblContract_1.CommentPlus, tblContract_1.IDKindPay, tblContract_1.Cash,
tblContract_1.IDEmployeeCom, tblContract_1.CommentAccount, tblContract_1.PathContract, tblContract_1.NameService, tblClient_1.Title AS Client, sprProject.Title AS Project,
sprCycleDocument.Title AS CycleDocument, tblClient.Title AS ClientPay, tblClient_2.Title AS ClientFirma, sprTitleDocument.Title AS TitleDocument,
tblContract.NumberContract AS ContractNext, sprKindPay.Title AS KindPay, tblEmployee.SurName+' ' + tblEmployee.Title +' '+ tblEmployee.Patronymic AS EmployeeCom
FROM tblClient AS tblClient_2 RIGHT OUTER JOIN
tblClient RIGHT OUTER JOIN
tblContract AS tblContract_1 LEFT OUTER JOIN
sprKindPay ON tblContract_1.IDKindPay = sprKindPay.IDKindPay LEFT OUTER JOIN
tblContract ON tblContract_1.IDContractNext = tblContract.IDContract LEFT OUTER JOIN
sprTitleDocument ON tblContract_1.IDTitleDocument = sprTitleDocument.IDTitleDocument ON tblClient.IDClient = tblContract_1.IDClientPay LEFT OUTER JOIN
tblClient AS tblClient_1 ON tblContract_1.IDClient = tblClient_1.IDClient LEFT OUTER JOIN
sprProject ON tblContract_1.IDProject = sprProject.IDProject ON tblClient_2.IDClient = tblContract_1.IDClientFirma LEFT OUTER JOIN
sprCycleDocument ON tblContract_1.IDCycleDocument = sprCycleDocument.IDCycleDocument LEFT OUTER JOIN
tblEmployee INNER JOIN
tblEmployeeClient ON tblEmployee.IDEmployee = tblEmployeeClient.IDEmployee AND tblEmployee.IDEmployee = tblEmployeeClient.IDEmployee ON
tblContract_1.IDEmployeeCom = tblEmployeeClient.IDEmployeeClient
ORDER BY tblContract_1.DateEnd DESC
SET CONCAT_NULL_YIELDS_NULL ON
Вот такой код
Когда просто выполняю запрос где WHERE @IDClient то DURATION 1000, когда выполняю хранимке 4000.
ЧТО ДЕЛАТЬ
30 янв 06, 11:16    [2299742]     Ответить | Цитировать Сообщить модератору
 Re: Странная работа с Хранимками!  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Можно вот так попробовать переписать начало процедуры
ALTER PROCEDURE dbo.Select_tblContract 
@IDCo int=-1,
@IDCl int=-1
AS
set nocount on
declare @IDContract int
declare @IDClient int

set @IDContract = @IDCo
set @IDClient = @IDCl
30 янв 06, 11:20    [2299760]     Ответить | Цитировать Сообщить модератору
 Re: Странная работа с Хранимками!  [new]
Glory
Member

Откуда:
Сообщений: 104760
Павел Воронцов
Glory
План строится ДО выполнениия.
И т.к. значения параметров на данный момент неизвестны, то план строится для всех команд процедуры.
Я конечно давно мс сиквел юзал, но всё же...

Это точно так? А то помнится мне пример из БОЛ, в котором предлагалось разносить разные запросы по процедурам и вызывать уже их в зависимости от входных параметров. Именно под тем флагом, что каждому запросу по плану!

Ну так потому и предлагалось, чтобы по ходу выполнениния не происходила перекомпиляции процедура. Из-за того, что при конкретных значениях параметров построенный прежде план становится не валидным.
30 янв 06, 11:20    [2299761]     Ответить | Цитировать Сообщить модератору
 Re: Странная работа с Хранимками!  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2387
Блог
Glory
Ну так потому и предлагалось, чтобы по ходу выполнениния не происходила перекомпиляции процедура. Из-за того, что при конкретных значениях параметров построенный прежде план становится не валидным.
Простите за занудство, но там таки предлагалось даже делать разные процедуры для разных наборов параметров, чтобы сервер сгенерил подходящий план в каждом случае. Внимание вопрос - как сервер с этим справится, если будет генерить план (при первом вызове) не зная значений параметров?

Впрочем, это я к частностям придираюсь и наверняка что-то как-то не так понял. Но сомнения остались.
30 янв 06, 11:24    [2299783]     Ответить | Цитировать Сообщить модератору
 Re: Странная работа с Хранимками!  [new]
Glory
Member

Откуда:
Сообщений: 104760
Павел Воронцов
Glory
Ну так потому и предлагалось, чтобы по ходу выполнениния не происходила перекомпиляции процедура. Из-за того, что при конкретных значениях параметров построенный прежде план становится не валидным.
Простите за занудство, но там таки предлагалось даже делать разные процедуры для разных наборов параметров, чтобы сервер сгенерил подходящий план в каждом случае. Внимание вопрос - как сервер с этим справится, если будет генерить план (при первом вызове) не зная значений параметров?

Впрочем, это я к частностям придираюсь и наверняка что-то как-то не так понял. Но сомнения остались.

Речь идет не о парамиетрах, которые используются непосредственно в запросах.
Речь идет о параметрах, из-за которых в процедуре появляется множество IF-ов. Как раз эти IF-и на этапе построения плана не могут быть учтены. Т.к. значения переменных на данный момент неизвестны.
30 янв 06, 11:30    [2299812]     Ответить | Цитировать Сообщить модератору
 Re: Странная работа с Хранимками!  [new]
C...R...a...S...H
Member

Откуда:
Сообщений: 188
tpg
Можно вот так попробовать переписать начало процедуры
ALTER PROCEDURE dbo.Select_tblContract 
@IDCo int=-1,
@IDCl int=-1
AS
set nocount on
declare @IDContract int
declare @IDClient int

set @IDContract = @IDCo
set @IDClient = @IDCl

Разницы ни какой!!!!
30 янв 06, 11:32    [2299818]     Ответить | Цитировать Сообщить модератору
 Re: Странная работа с Хранимками!  [new]
C...R...a...S...H
Member

Откуда:
Сообщений: 188
Glory
Павел Воронцов
Glory
Ну так потому и предлагалось, чтобы по ходу выполнениния не происходила перекомпиляции процедура. Из-за того, что при конкретных значениях параметров построенный прежде план становится не валидным.
Простите за занудство, но там таки предлагалось даже делать разные процедуры для разных наборов параметров, чтобы сервер сгенерил подходящий план в каждом случае. Внимание вопрос - как сервер с этим справится, если будет генерить план (при первом вызове) не зная значений параметров?

Впрочем, это я к частностям придираюсь и наверняка что-то как-то не так понял. Но сомнения остались.

Речь идет не о парамиетрах, которые используются непосредственно в запросах.
Речь идет о параметрах, из-за которых в процедуре появляется множество IF-ов. Как раз эти IF-и на этапе построения плана не могут быть учтены. Т.к. значения переменных на данный момент неизвестны.


ВОПРОС ТО НЕ ПРО ПЛАН(ПЛАН ЭТО НЕ ТО)
ВОПРОС В ТОМ ЧТО САМА ХРАНИМКА ВЫПОЛНЯЕТСЯ ДОЛГО!!!
30 янв 06, 11:33    [2299828]     Ответить | Цитировать Сообщить модератору
 Re: Странная работа с Хранимками!  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
C...R...a...S...H
ВОПРОС ТО НЕ ПРО ПЛАН(ПЛАН ЭТО НЕ ТО)
ВОПРОС В ТОМ ЧТО САМА ХРАНИМКА ВЫПОЛНЯЕТСЯ ДОЛГО!!!
Планы в студию!
30 янв 06, 11:35    [2299836]     Ответить | Цитировать Сообщить модератору
 Re: Странная работа с Хранимками!  [new]
Glory
Member

Откуда:
Сообщений: 104760
C...R...a...S...H

ВОПРОС ТО НЕ ПРО ПЛАН(ПЛАН ЭТО НЕ ТО)
ВОПРОС В ТОМ ЧТО САМА ХРАНИМКА ВЫПОЛНЯЕТСЯ ДОЛГО!!!

Ну так как раз анализ узких мест процедуры нужно начинать с плана ее выполнение

ЗЫ
И не недо, пожалуйста, кричать
30 янв 06, 11:35    [2299837]     Ответить | Цитировать Сообщить модератору
 Re: Странная работа с Хранимками!  [new]
C...R...a...S...H
Member

Откуда:
Сообщений: 188
Так при чем тут план!
У меня хранимка выполняется в 4 раза дольше чем просто один запрос, как будто SQL выпонятет все запросы в хранимке. Как это побороть!
30 янв 06, 11:40    [2299865]     Ответить | Цитировать Сообщить модератору
 Re: Странная работа с Хранимками!  [new]
Glory
Member

Откуда:
Сообщений: 104760
C...R...a...S...H
Так при чем тут план!
У меня хранимка выполняется в 4 раза дольше чем просто один запрос, как будто SQL выпонятет все запросы в хранимке. Как это побороть!

Выполните команду SET SLOWEXECUTION OFF
30 янв 06, 11:41    [2299874]     Ответить | Цитировать Сообщить модератору
 Re: Странная работа с Хранимками!  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
C...R...a...S...H
Так при чем тут план!
У меня хранимка выполняется в 4 раза дольше чем просто один запрос, как будто SQL выпонятет все запросы в хранимке. Как это побороть!
Вот в плане и будет видео, что там выполняется на самом деле.
30 янв 06, 11:44    [2299892]     Ответить | Цитировать Сообщить модератору
 Re: Странная работа с Хранимками!  [new]
C...R...a...S...H
Member

Откуда:
Сообщений: 188
Glory
C...R...a...S...H
Так при чем тут план!
У меня хранимка выполняется в 4 раза дольше чем просто один запрос, как будто SQL выпонятет все запросы в хранимке. Как это побороть!

Выполните команду SET SLOWEXECUTION OFF
,

Server: Msg 195, Level 15, State 5, Procedure Select_tblContract, Line 12
'SLOWEXECUTION' is not a recognized option.
30 янв 06, 11:47    [2299901]     Ответить | Цитировать Сообщить модератору
 Re: Странная работа с Хранимками!  [new]
Glory
Member

Откуда:
Сообщений: 104760
C...R...a...S...H
Glory
C...R...a...S...H
Так при чем тут план!
У меня хранимка выполняется в 4 раза дольше чем просто один запрос, как будто SQL выпонятет все запросы в хранимке. Как это побороть!

Выполните команду SET SLOWEXECUTION OFF
,

Server: Msg 195, Level 15, State 5, Procedure Select_tblContract, Line 12
'SLOWEXECUTION' is not a recognized option.

Ууупс, чуда не произошло
Значит придется все таки проанализировать планы выполнения.
И вообще все события, которые происходят на сервере в процессе выполнения процедуры.
30 янв 06, 11:48    [2299908]     Ответить | Цитировать Сообщить модератору
 Re: Странная работа с Хранимками!  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Glory
C...R...a...S...H
Так при чем тут план!
У меня хранимка выполняется в 4 раза дольше чем просто один запрос, как будто SQL выпонятет все запросы в хранимке. Как это побороть!

Выполните команду SET SLOWEXECUTION OFF

+10
30 янв 06, 11:48    [2299914]     Ответить | Цитировать Сообщить модератору
 Re: Странная работа с Хранимками!  [new]
C...R...a...S...H
Member

Откуда:
Сообщений: 188
Ну что ни кто не подсобит?
30 янв 06, 15:15    [2301233]     Ответить | Цитировать Сообщить модератору
 Re: Странная работа с Хранимками!  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
C...R...a...S...H
Ну что ни кто не подсобит?


Glory
Значит придется все таки проанализировать планы выполнения.
И вообще все события, которые происходят на сервере в процессе выполнения процедуры.
30 янв 06, 15:19    [2301274]     Ответить | Цитировать Сообщить модератору
 Re: Странная работа с Хранимками!  [new]
C...R...a...S...H
Member

Откуда:
Сообщений: 188
Я что-то не пойму, зачем необходимо анализировать планы, когда по ним и так видно что выполняются все запросы из хранимки. ВОПРОС ТО ЗАКЛЮЧАЕТСЯ В ТОМ ПОЧЕМУ ВСЕ ЗАПРОСЫ ВЫПОЛНЯЮТСЯ КОГДА ОПРЕДЕЛЕННЫЕ ЗНАЧЕНИЯ УКАЗАНЫ В ЗАПРОСЕ
30 янв 06, 16:33    [2301908]     Ответить | Цитировать Сообщить модератору
 Re: Странная работа с Хранимками!  [new]
злой шаман
Member

Откуда: Питер
Сообщений: 1253
Эти четыре запроса отличаются чем-нибудь еще, кроме раздела WHERE?
30 янв 06, 16:39    [2301951]     Ответить | Цитировать Сообщить модератору
 Re: Странная работа с Хранимками!  [new]
C...R...a...S...H
Member

Откуда:
Сообщений: 188
В том который по @IDClient, там меньше связанных полей. А в целом одинаковые.
30 янв 06, 16:42    [2301990]     Ответить | Цитировать Сообщить модератору
 Re: Странная работа с Хранимками!  [new]
Glory
Member

Откуда:
Сообщений: 104760
C...R...a...S...H
Я что-то не пойму, зачем необходимо анализировать планы, когда по ним и так видно что выполняются все запросы из хранимки. ВОПРОС ТО ЗАКЛЮЧАЕТСЯ В ТОМ ПОЧЕМУ ВСЕ ЗАПРОСЫ ВЫПОЛНЯЮТСЯ КОГДА ОПРЕДЕЛЕННЫЕ ЗНАЧЕНИЯ УКАЗАНЫ В ЗАПРОСЕ

Во-первых, прекратите кричать
Во-вторых, если вы не хотите делать то, что вам советуют, то это уже ваша проблема
30 янв 06, 16:44    [2302010]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить