Я работаю над оптимизацией SQL-запроса, который соответствует очень широкой таблице в устаревшей системе. На данный момент я не могу сузить таблицу по разным причинам.
Мой запрос выполняется медленно, потому что он выполняет поиск по индексу в индексе, который я создал, а затем использует поиск по закладкам, чтобы найти дополнительные столбцы, которые ему нужны, которых нет в индексе. Поиск закладки занимает 42% времени запроса (согласно оптимизатору запросов).
В таблице 38 столбцов, некоторые из которых являются nvarchars, поэтому я не могу создать покрывающий индекс, включающий все столбцы. Я попытался воспользоваться пересечением индексов, создав индексы, охватывающие все столбцы, однако эти «покрывающие» индексы не подхватываются планом выполнения и не используются.
Кроме того, поскольку 28 из 38 столбцов извлекаются с помощью этого запроса, у меня будет 28/38 столбцов в таблице, хранящихся в этих покрывающих индексах, поэтому я не уверен, насколько это поможет.
Считаете ли вы, что поиск по закладкам настолько хорош, насколько это возможно, или какой еще вариант?
(Я должен указать, что это SQL Server 2000)