2013-10-15 3 views
1

У меня есть вопрос о плане исполнения:план выполнения, SQL Server 2012

Я написал запрос, прежде чем я одобрить его использование плана выполнения кластерного индекса сканирования с 2 строки на чтение:

Table 'Worktable'. Scan count 1, logical reads 17 
Table 'a21'. Scan count 3, logical reads 6 

после того как я создать индекс искать выполнить простой использовать индекс искать

Scan count 43, logical reads 86. 

Что лучше?

Благодаря

ответ

0

Вы не можете сказать, из числа, так как он не показывает, какие читает были физическими, которые были логичны и как дорого каждое чтение было. Номера чтения/записи практически бесполезны.

Вместо этого измерьте время процессора. Для вашей рабочей нагрузки крайне вероятно, что нет физического ввода-вывода, поскольку таблицы настолько малы. Поэтому не измеряйте IO.

Также сравните планы выполнения.

+0

Можете ли вы уточнить, что числа «чтение/запись» бесполезны? –

+0

@SurajSingh, вы думаете, что запрос с 1000 чтениями в 10 раз медленнее, чем запрос со 100 чтениями? Нет. Вы даже не можете сказать, что это быстрее. Запрос с 100 считываниями может сжечь 10 с CPU, в то время как другой может использовать почти никакой процессор. Или 100 просмотров могут быть физическими, в то время как 1000 могут быть кэшированы (что означает, что они почти бесплатны). Номера IO очень мало говорят о производительности. – usr

+0

Нет, я действительно не иду с цифрами в 10 раз медленнее и т. Д. Так что чтение/запись никак не влияют на время или производительность процессора? –

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