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

Откуда:
Сообщений: 916
Создал процедуру , скомпилил , проверил. Работает.
Решил оценить производительность написал что то типа
exec dbo.proc1
.

Само по себе работает, но когда я пытаюсь выполнить с Display Estimated Execution Plan , проходит ругачка на темпоральные таблицы (точнее на их якобы отсутствие), эти таблицы я делаю налету -
select ... into #tmp from dbo.table

Как это обойти (Microsoft SQL Server 2005) ?
20 июн 17, 17:15    [20578207]     Ответить | Цитировать Сообщить модератору
 Re: Ругачка от Manаgement Studio при анализе sp  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
Могу предложить заменить SELECT INTO на CREATE TABLE + INSERT INTO
20 июн 17, 17:56    [20578299]     Ответить | Цитировать Сообщить модератору
 Re: Ругачка от Manаgement Studio при анализе sp  [new]
medoed
Member

Откуда:
Сообщений: 916
Руслан Дамирович
Могу предложить заменить SELECT INTO на CREATE TABLE + INSERT INTO

Лениво и некрасиво же! :-(((
20 июн 17, 18:25    [20578364]     Ответить | Цитировать Сообщить модератору
 Re: Ругачка от Manаgement Studio при анализе sp  [new]
invm
Member

Откуда: Москва
Сообщений: 9279
medoed
Как это обойти
Предварительным созданием временной таблицы аналогичной структуры, перед тем как запрашивать оценочный план. Ибо чудес не бывает и нельзя построить план для несуществующего объекта.

Запрашивайте актуальный план после выполнения процедуры. Только это не будет единым планом процедуры - получите набор планов запросов из тела процедуры.
Если нужен именно оценочный процедуры - берите из кеша.

Замена SELECT INTO на CREATE TABLE + INSERT INTO не поможет.
20 июн 17, 18:58    [20578461]     Ответить | Цитировать Сообщить модератору
 Re: Ругачка от Manаgement Studio при анализе sp  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
SELECT ... into #TmpTable для длинных запросов вреден, т.к. на время запроса блокируется вся схема данных (для 2005 и старше).
Создавая пустую табличку такой проблемы нет.

В более новых версиях вроде как эту проблему залечили, но лично я не проверял. :)
21 июн 17, 10:24    [20579639]     Ответить | Цитировать Сообщить модератору
 Re: Ругачка от Manаgement Studio при анализе sp  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
LSV,

автор
т.к. на время запроса блокируется вся схема данных
не схема а системные объекты tempdb, что влечёт за собой блокировку создания временных таблиц и это пофиксено в 7.0(если не ошибааюсь)
21 июн 17, 10:48    [20579721]     Ответить | Цитировать Сообщить модератору
 Re: Ругачка от Manаgement Studio при анализе sp  [new]
medoed
Member

Откуда:
Сообщений: 916
TaPaK
LSV,

автор
т.к. на время запроса блокируется вся схема данных
не схема а системные объекты tempdb, что влечёт за собой блокировку создания временных таблиц и это пофиксено в 7.0(если не ошибааюсь)


Ссылочкой можете поделиться, если не сложно, я что то такой инфы о фиксе не нашел
21 июн 17, 10:54    [20579738]     Ответить | Цитировать Сообщить модератору
 Re: Ругачка от Manаgement Studio при анализе sp  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
medoed
TaPaK
LSV,

пропущено...
не схема а системные объекты tempdb, что влечёт за собой блокировку создания временных таблиц и это пофиксено в 7.0(если не ошибааюсь)


Ссылочкой можете поделиться, если не сложно, я что то такой инфы о фиксе не нашел

за давностью лет уже ms половина ссылок не живы :)

в 6.5 sp1 уже исправили.

https://support.microsoft.com/en-us/help/153096/fix-sql-server-6.5-service-pack-1-fixlist

+
FIX: SELECT INTO Locking Behavior

153441 BUG #: 14818 (DCR, 6.50)

SUMMARY

In SQL Server 6.5, SELECT INTO wraps within a transaction. Tables created by using SELECT INTO hold to the ACID (atomicity, consistency, isolation, durability) transaction properties. This also means that system resources, such as pages, extents, and locks, are held for the duration of the SELECT INTO statement. With larger system objects, this leads to the condition where many internal tasks can be blocked by other users performing SELECT INTO statements. For example, on high-activity servers, many users running the SQL Enterprise Manager tool to monitor system processes can block on each other, which leads to a condition where the SEM application appears to hang.
MORE INFORMATION

When you upgrade to SQL Server 6.5 Service Pack 1, SELECT INTO locking characteristics is a system settable feature. Wrapping the SELECT INTO with a transaction remains the default behavior. For users wishing not to hold system catalog locks on the activity, a trace flag has been added to allow for such operations. To apply the trace flag, start the server with the -T5302 command line parameter, or from within a query window, use the following commands:
21 июн 17, 11:14    [20579826]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить