powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / нубский вопрос. долгий count
4 сообщений из 4, страница 1 из 1
нубский вопрос. долгий count
    #39945592
dbaranow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!

Прошу не пинать сильно) MSSQL только изучаю. Дело следующем. С недавного времени мне приходится поддерживать одно приложение. Оно обращается к MSSQL базе, и проблема того, что банальный на мой взгляд запрос выполняется очень долго, не дает мне покоя. Причем каждый раз это происходит в разное время. Иногда запрос выполняется 60+ секунд, а иногда - 0,2 мс. Запрос просто возвращает количество записей при определенных условиях. Индексы есть. Сделать индекс для вложенных таблиц я так понимаю нельзя. По моим ощущениям задержка больше после каждой новой записи в таблицу. В рабочее время этих записей может быть до 10 в секунду. Общий объем таблицы Images порядка 1.5 млн записей, одна колонка бинарная. Таблицы Users - 1000 записей, ProgramUsers - 100 записей. Как быть?


Код: sql
1.
2.
3.
4.
5.
SELECT COUNT(*)
FROM Images AS SCR
LEFT JOIN Users as U ON SCR.UserID=U.ID
LEFT JOIN ProgramUsers AS PU ON U.ProgramUser=PU.id
WHERE PU.ID=@programuserid AND (SCR.DateTime BETWEEN @datefrom AND @dateto) AND (U.Removed IS NULL)



Предполагаю, что надо избавиться от вложенных таблиц, перенеся UserID и ProgramUserID в таблицу Images, но это трудоемко. Может быть есть способ проще?
...
Рейтинг: 0 / 0
нубский вопрос. долгий count
    #39945602
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbaranow
Иногда запрос выполняется 60+ секунд, а иногда - 0,2 мс
Надо бы сравнить планы выполнения

dbaranow
Предполагаю, что надо избавиться от вложенных таблиц, перенеся UserID и ProgramUserID в таблицу Images, но это трудоемко. Может быть есть способ проще?
Конечно, это было бы идеально для скорости (сделав ещё индекс на ProgramUserID, DateTime)
...
Рейтинг: 0 / 0
нубский вопрос. долгий count
    #39945696
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такое разное время на одинаковых значениях вх.параметров ?
Разумеется, что с разными параметрами трудоемкость запросов будет разной.

Измерения следует проводить после второго запроса, т.к. первый будет дольше зачитываться в кеш.

База или соседние базы чем то нагружены ?
Обновляли статистику данных таблиц ?
...
Рейтинг: 0 / 0
нубский вопрос. долгий count
    #39945697
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начните с замены обоих LEFT JOIN на INNER JOIN - всё равно условия во WHERE и втором ON превращают эти связывания во внутренние.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / нубский вопрос. долгий count
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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