Я использую этот SELECT
статус
SELECT ID, Code, ParentID,...
FROM myTable WITH (NOLOCK)
WHERE ParentID = 0x0
Этот статус повторяется каждые 15 минут (через службу Windows)
Проблема в том, что при выполнении этого запроса база данных становится медленной для других пользователей.
Как лучше всего избежать снижения производительности при выполнении запроса?
2 ответа
Создайте план выполнения для своего запроса и изучите его.
- Индексировано ли поле
ParentId
? - Есть ли другие способы оптимизации запроса?
Можно ли увеличить производительность сервера, на котором размещен SQL Server?
- Требуется ли больше диска или ОЗУ?
- Есть ли у вас отдельные диски (шпиндели) для операционной системы, данных, журналов транзакций, временных баз данных?
Еще кое-что, что следует учитывать - нужно ли всегда извлекать самые последние значения из этой таблицы для своего приложения, или можно было бы кэшировать предыдущие результаты и использовать их в течение некоторого времени?
Кажется, в вашей таблице огромное количество записей. Вы можете подумать о реализации постраничного извлечения данных. Вы можете сначала запросить, скажем, первые 100 строк, а затем выполнить несколько вызовов для получения остальных данных.
Я до сих пор не понимаю, нужно ли запускать такой запрос каждые 15 минут. Вы можете подумать о реализации хранимой процедуры, которая может выполнять большую часть обработки и возвращать вам небольшое подмножество данных. Это будет хорошим улучшением, если оно соответствует вашим требованиям.
Похожие вопросы
Новые вопросы
sql-server
Microsoft SQL Server - это система управления реляционными базами данных (RDBMS). Используйте этот тег для всех выпусков SQL Server, включая Compact, Express, Azure, Fast-track, APS (ранее PDW) и Azure SQL DW. Не используйте этот тег для других типов СУБД (MySQL, PostgreSQL, Oracle и т. Д.). Не используйте этот тег для проблем, связанных с разработкой программного обеспечения и мобильных устройств, если только он не связан напрямую с базой данных.
OPTION(MAXDOP 1)
в конец запроса. Если вы хотите ускорить этот запрос, добавьте индекс дляParentID
вместе со столбцами в списке выбора или измените кластерный индекс наParentID
.