Я работаю с действительно большими наборами данных, в одной таблице сейчас около 90 миллионов записей.
У меня есть представление, LINK
, которое объединяет три таблицы. Обычно это выглядит так ...
SELECT ...
FROM Accounts
LEFT JOIN RunInfo
ON Accounts.File = RunInfo.File
AND Accounts.AccountName = RunInfo.Account
LEFT JOIN JobInfo
ON RunInfo.Machine = JobInfo.Machine
AND RunInfo.Job = JobInfo.Job
AND RunInfo.File = JobInfo.File
LEFT JOIN Barcodes
ON RunInfo.RunInstance = Barcodes.RunInstance
AND RunInfo.File = Barcodes.File
AND RunInfo.Machine = Barcodes.Machine
AND RunInfo.Job = Barcodes.Job
В настоящее время у меня есть единственный некластеризованный индекс в Barcodes.barcode
(это самая большая таблица в представлении со значительным отрывом), как когда я запускаю запросы, включающие присоединение таблицы к этому массивному представлению, соединение всегда происходит на NewTable.barcode = LINK.barcode
.
Я не особо разбираюсь в искусстве оптимизации, поэтому некоторые операции с этим представлением могут занять 15 минут или больше.
Какие индексы мне следует создавать и где это оптимизировать?