Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Каким образом порядок критериев в предложении WHERE влияет на скорость выполнени
|
|||
|---|---|---|---|
|
#18+
Приветствую всех. Создал таблицу: CREATE TABLE [HUGE] ( [id] [int] IDENTITY (1, 1) NOT NULL , [value] [varchar] (256) NULL ) GO Заполнил тестовыми данными: set nocount on declare @i int, @value char(256) SET @i = 0 while(@i < 100x000) begin SET @value = CAST(newid() AS char(36)) INSERT INTO HUGE (value) VALUES (@value) SET @i = @i + 1 end GO Далее запустил запросы: SELECT * FROM HUGE WHERE id < 3423 AND id > 3023 ------------------------------------------------ Table 'HUGE'. Scan count 1, logical reads 3484, physical reads 0, read-ahead reads 0. SQL Server Execution Times: CPU time = 141 ms, elapsed time = 162 ms. SQL Server Execution Times: CPU time = 141 ms, elapsed time = 163 ms. SQL Server Execution Times: CPU time = 141 ms, elapsed time = 163 ms. SQL Server parse and compile time: CPU time = 0 ms, elapsed time = 0 ms. SELECT * FROM HUGE WHERE id > 3023 AND id < 3423 ------------------------------------------------ Table 'HUGE'. Scan count 1, logical reads 3484, physical reads 0, read-ahead reads 0. SQL Server Execution Times: CPU time = 172 ms, elapsed time = 225 ms. SQL Server Execution Times: CPU time = 172 ms, elapsed time = 232 ms. SQL Server Execution Times: CPU time = 172 ms, elapsed time = 232 ms. SQL Server parse and compile time: CPU time = 0 ms, elapsed time = 0 ms. Почему имеем такое большое различие во времени выполнения запросов и требуемых ресурсах? Благодарю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2002, 14:42 |
|
||
|
Каким образом порядок критериев в предложении WHERE влияет на скорость выполнени
|
|||
|---|---|---|---|
|
#18+
Поправка: 100x000 следует читать как 100000, конечно. Прошу прощения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2002, 14:45 |
|
||
|
Каким образом порядок критериев в предложении WHERE влияет на скорость выполнени
|
|||
|---|---|---|---|
|
#18+
Наверное, потому что первый запрос возвращает всего 188 записей, а второй 99798 записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2002, 17:15 |
|
||
|
Каким образом порядок критериев в предложении WHERE влияет на скорость выполнени
|
|||
|---|---|---|---|
|
#18+
Приветствую всех 2Garya: Вы, вероятно, будете удивлены, но оба запроса эквивалентны и возвращают одну и ту же выборку (399) записей. Удачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2002, 07:25 |
|
||
|
Каким образом порядок критериев в предложении WHERE влияет на скорость выполнени
|
|||
|---|---|---|---|
|
#18+
Пардон, не разглядел чехарду... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2002, 17:41 |
|
||
|
Каким образом порядок критериев в предложении WHERE влияет на скорость выполнени
|
|||
|---|---|---|---|
|
#18+
Моя точка зрения - никак не влияет. Я некоторое время поэкспериментировал с приведенным Вами скриптом - и, в общем-то, все вписывается в предсказанные теорией рамки. Всяких дурацких пользователей, правда, пришлось выкинуть для чистоты эксперимента и сказать, что сервер на профилактике. Значит, СPU Time было строго 150 - 151 ms независимо с клиента это делать или на самом сервере. Elapsed time гуляло от 161 ms до 416 ms, ну это понятно. Юзеры от нечего делать пошли порнуху качать и просадили сетку. Почему в Вашем случае CPU Time вело себя, как неразборчивая женщина, я не знаю. Может, нагрузка менялась. Сомневаться в порядочности GetThreadTimes() не приходится, если только у Вас на SQL Server не включены фибры. Либо он неотсервиспачен и тогда при определенном стечении обстоятельств (за время запроса пришло много новых коннектов, большую часть которых взяли из пула) master..sysprocesses.CPU может провраться (см. Q309377). Но это нужно просто поставить SP2 и не испытывать себя на везучесть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2002, 20:32 |
|
||
|
Каким образом порядок критериев в предложении WHERE влияет на скорость выполнени
|
|||
|---|---|---|---|
|
#18+
Да... Никогда бы не подумал, что это существенно. Притом я всегда использую второй синтаксис. Интересно было бы попробовать выборку из самого начала [1,400] и конца [999900,100000]. "А если слон на кита нападет, кто кого сборет?" O.Кассиль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2002, 20:38 |
|
||
|
Каким образом порядок критериев в предложении WHERE влияет на скорость выполнени
|
|||
|---|---|---|---|
|
#18+
Лично я тоже разницы не заметил. Может это у тебя случайность? Кстати, почему ты в подобных случаях не пользуешся SELECT * FROM HUGE WHERE id BETWEEN 3023+1 AND 3423-1 Из эстэтических соображений или принципы не позволяют? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2002, 11:47 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32025560&tid=1823450]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 377ms |

| 0 / 0 |
