Можно быстрее выполнить запрос с тысячами данных (SQL)
У меня есть 5 таблиц для получения моих данных. В настоящее время он работает в течение 8-10 минут. Может ли он работать немного быстрее? Смотрите ниже мой код. Не совсем названия моих таблиц, но я применяю ту же логику. Я получил правильные результаты, мне просто нужно сделать это быстрее, если это возможно.
Пожалуйста, спросите, нужна ли вам дополнительная информация.
select B.PD_idno, B.Fullname, C.datetime_process, C.detail_1, C.detail_2, --/get the quantity in tbl_DT2 if exists, else, just get the one in tbl_Process/-- (case when (C.PD_idno = D.PD_idno) then E.DT_quantity else C.process_quantity end) as Quantity from tbl_InOut A inner join tbl_PersonDetail B on A.PD_idno = B.PD_idno inner join tbl_Process C on B.PD_idno = C.PD_idno --/get only process based on time_in and time_out/-- and C.datetime_process between A.time_in and A.time_out left join tbl_DT1 D on C.detail_1 = D.detail_1 and C.detail_2 = D.detail_2 left join tbl_DT2 E on D.DT_code = E.DT_code and D.datetime_process = E.datetime_process --/get process items between current date and past 7 days/-- where C.datetime_process between CONVERT(date, GETDATE() - 7) and CONVERT(date, GETDATE() )
Что я уже пробовал:
Попробовал обычные советы здесь: Ускорьте запросы к базе данных SQL Server с помощью этих советов - TechRepublic[^]
и Настройка производительности SQL-запросов | SQL Tutorial - Mode Analytics[^]
Mohibur Rashid
8 минут кажутся слишком долгими для этого запроса. Какая база данных, если быть точным?
Сколько строк в каждой таблице?
heyitsPJ
Тысяча строк, особенно в tbl_Process. На данный момент tbl_Process имеет 97 158, и он будет расти каждый день, потому что есть много транзакций процесса.
У меня есть только одна база данных, и в ней есть 30 таблиц, но для этого конкретного запроса я использовал только 5 таблиц. Запрос будет возвращать только данные за последние 7 дней, включая текущую дату.
heyitsPJ
смотрите изображение здесь: https://pasteboard.co/HohQ7fR.png
это примерные данные, но в моей базе данных я получил тысячи.
Mohibur Rashid
Как называется ваша база данных?
heyitsPJ
Имя базы данных: PROCESSDB
Это на моем локальном сервере. Я использую MS SQL 2008