2013-07-22 2 views
-4
SELECT * FROM TAB_EXAMPLE 

Первый раз для какой-либо таблицы требуется 3 секунды, но второй раз требуется 1 секунда. Зачем?Запрос занимает меньше времени в его втором выполнении в SQL Server

Если SQL Server создает некоторые планы выполнения запросов для запроса, которые были выполнены один раз, как мне реализовать эти планы?

+4

DBCC FREEPROCCACHE сделает это для всех планов в кеше. Но не забудьте очистить ваши пулы буферов и кэши контроллера хранилища и другие детали реализации! Сделайте холодный ботинок. –

+0

@ ta.speot.is: можете ли вы представить какой-либо пример? –

ответ

2

Когда вы выполняете запрос в первый раз, он переходит в кеш-память Sql Server, поэтому последующие исполнения выполняются быстрее.

Если вы хотите очистить кэш, я использую эти две команды:

DBCC FREEPROCCACHE 
DBCC DROPCLEANBUFFERS 

Первый чистый кэш, вторые чистые связанные с буферами.

+0

Отсутствие эффекта после очистки кеша и буферов. если какая-либо другая вещь, которая также нуждается в очистке, пожалуйста, предложите? –

+0

попробуйте это тоже: DBCC FLUSHPROCINDB (db_id) Я нашел это: http://blog.sqlauthority.com/2007/03/23/sql-server-stored-procedure-clean-cache-and-clean-buffer/ –

+0

большое спасибо. –

Смежные вопросы