У меня есть стол, похожий на 10 000 строк.sql server query performance, где статья
declare @a table
(
id bigint not null,
nm varchar(100) not null,
filter bigint
primary key (id)
)
Выбор с 4-5 соединением занимает х секунд. Если предложение where добавлено, теперь он занимает 3 раза. Предложение где:
filter = @filder or
filter is null
Я применил некластеризованный индекс на колонке, но я получаю только 10% от Perfomance.
Любые советы?
Редактирование: проблема с производительностью возникает при добавлении столбца фильтра. все соединения находятся на первичных ключах.
Используются ли столбцы для объединения какой-либо из индексов? – JeffO
Какие поля вы выбираете?Если у вас 4-5 соединений, эти ключи индексируются на BOTH SIDES соединения? – JNK
Как выглядит ваша производительность, когда вы выполняете 'SELECT filter FROM @a WHERE ........' ?? Если вы выполняете «SELECT *», и, следовательно, индекс, скорее всего, вообще не поможет, поскольку оптимизатор запросов все равно будет проверять всю таблицу (поскольку вы запрашиваете ** все столбцы ** в вашем SELECT). ... –