Что делает флаг трассировки SQL Server 253? - PullRequest
1 голос
/ 08 апреля 2010

В другом вопросе я пытался выяснить, как управлять кэшем плана запросов SQL Server:

https://stackoverflow.com/questions/2593749/is-there-an-equivalent-of-optionrecompile-or-with-recompile-for-an-entire-c

... и я нашел флаг трассировки 253 в этой статье:

http://www.sqlservercentral.com/Forums/Topic837613-146-1.aspx

Статья верна, если я запускаю DBCC TRACEON (253), а затем несколько запросов, я могу вручную проверить кэш плана запросов и убедиться, что планы вставлены , а не . Если я запускаю DBCC TRACEOFF (253), планы запросов кэшируются как обычно.

Так что мой вопрос ... что еще делает этот флаг? Кто-нибудь знает официальную историю?

1 Ответ

1 голос
/ 06 июля 2011

Как вы говорите и как упоминается в комментарии Jon Seigels , это:

Предотвращает сохранение планов специальных запросов в кэше.

Это не должно делать что-либо еще. Однако, как указано здесь для флагов трассировки, обычно:

Флаги трассировки приводят к тому, что ядро ​​базы данных выполняет альтернативные пути кода, которые, возможно, не были так тщательно проверены или имеют конкретное назначение и могут иметь непредсказуемые побочные эффекты.

Учитывая, что это информация от MVP, которая утверждает, что слышала от члена команды по продукту, она выглядит настолько официальной, насколько это возможно. Тем более что собственная документация Microsoft на MSDN не содержит всех флагов трассировки, которые можно найти в сети - как ссылка Джона Сейгельса в его комментарии.

...