Я работаю над базой данных, в которой в настоящее время хранится в общей сложности 788 данных, и она постоянно увеличивается со временем.
Мой код выглядит следующим образом:
SELECT DISTINCT R.remarks, R.payerId, R.payername, R.payeraddress, R.collectorName, R.serialno, OOI.phone_no, CR.cr_no, F.application_no, R.series, R.txndate, R.amount, T.toda_name, B.brand_name, M.motor_no, M.chassis_no,
M.plate_no, F.date_issue, M.year_model, M.body_color, OOI.ice_person_name, OOI.ice_person_address, OOI.ice_person_contact_no, M.motor_id, F.franchise_id, LEFT(R.remarks, 4) AS franchise_no, SUBSTRING(R.remarks,
CHARINDEX('|', R.remarks) + 1, LEN(R.remarks)) AS motor_noremarks
FROM etracs_tayabas.dbo.Receipt AS R INNER JOIN
etracs_tayabas.dbo.ReceiptItem AS RI ON RI.parentid = R.objid INNER JOIN
etracs_tayabas.dbo.IncomeAccount AS IA ON IA.objid = RI.acctid LEFT OUTER JOIN
dbo.vfTA_tblMotor AS M ON M.motor_no = SUBSTRING(R.remarks, CHARINDEX('|', R.remarks) + 1, LEN(R.remarks)) LEFT OUTER JOIN
dbo.vfTA_tblOperatorOtherInfo AS OOI ON OOI.operator_id = R.payerId LEFT OUTER JOIN
dbo.vfTA_tblCertificateOfRegistration AS CR ON CR.motor_id = M.motor_id LEFT OUTER JOIN
dbo.vfTA_tblFranchise AS F ON F.or_id = R.objid LEFT OUTER JOIN
dbo.vfTA_tblTODA AS T ON T.toda_id = M.toda_id LEFT OUTER JOIN
dbo.vfTA_tblReconciledTaxpayer AS RT ON RT.payer_id = R.payerId LEFT OUTER JOIN
dbo.vfTA_tblBrand AS B ON B.brand_id = M.brand_id
WHERE (IA.objid = 'FTFA00000242') AND (F.franchise_id IS NULL) AND (R.voidId IS NULL) AND (R.remarks IS NOT NULL) AND (RT.rtp_id IS NULL)
Каждый раз, когда я запускаю этот код, мне всегда требуется до 10 минут или больше, чтобы загрузить все значения.Я пытался создать представление SQL для этого же кода, но при его запуске всегда отображается ошибка Execution Timeout
.
Я хочу знать:
- Что такое лучшая оптимизацияметод для представлений и хранимой процедуры?
- Как можно уменьшить время, необходимое для загрузки данных, учитывая, что они имеют 788 данных и увеличиваются с течением времени?
- Как предотвратить много выполнениявремя ожидания в SQL или даже в программе?
- Некоторые сайты, которые помогают обучать оптимизации SQL.
Я пытаюсь изучить оптимизацию прямо сейчас, потому что заметил, что когда я делаюзапрос обычно занимает много времени для загрузки и иногда выдает ошибку 'Execution Timeout'
В настоящее время я новичок в этом.Заранее спасибо.