powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / MSSQL 2000 Время выполнения запроса
6 сообщений из 6, страница 1 из 1
MSSQL 2000 Время выполнения запроса
    #32034343
Underking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть запрос, выполняется примерно секунду, может иногда две. Но если в WHERE сдлеать хотя бы проверку переменой на NOT NULL, запрос выполняется уже 10секунд. А если там будет проверка типа
((@UIDService=journal_service.UIDService) or (@UIDService IS NULL))
он уже выполняется 20 секуд, независимо от количества таких проверок.
Если добавить просто проверку какого либо поля базы, на время запроса не сказывается. Т.е. чем-то ему не нравятся переменные в области WHERE.
В чем может быть проблема?
...
Рейтинг: 0 / 0
MSSQL 2000 Время выполнения запроса
    #32034345
Фотография VVG_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего этот запрос крутился внутри покрывающего индекса, а при добавлении нового условия ему приходится ворошить всю базу.
...
Рейтинг: 0 / 0
MSSQL 2000 Время выполнения запроса
    #32034356
Underking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно чуть подробней.
И как с этим можно бороться?
...
Рейтинг: 0 / 0
MSSQL 2000 Время выполнения запроса
    #32034357
Sergey Makarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я уже поднимал этот вопрос несколько дней назад. Если обратить внимание на план выполнения запроса - будет видно, что при условии WHERE (@ID IS NULL OR ID=@ID) не используется индекс по ID и идет сканирование всей таблицы.
...
Рейтинг: 0 / 0
MSSQL 2000 Время выполнения запроса
    #32034360
Underking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В плане запроса при подключени одной из таблиц Row count hfdty 6700000, хотя записей в таблице намного меньше.
Хотя я так нормально и не научился читать планы запросов.
...
Рейтинг: 0 / 0
MSSQL 2000 Время выполнения запроса
    #32034361
SM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В этои конкретном случае поиск
по journal_service.UIDService наверняка идет без индекса.

Для спавнения можно выполнить в QA два запроса в одном окне

Код: plaintext
1.
2.
SELECT ... WHERE (@UIDService=journal_service.UIDService) or (@UIDService IS NULL)

SELECT ... WHERE (@UIDService=journal_service.UIDService) 


И посмотреть план выполнения. Сразу все станет ясно.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / MSSQL 2000 Время выполнения запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]