Общая оптимизация SQL
Недавно попросили помочь с оптимизацией запросов
Таблица выглядит так:
create table dbo.Table
(
id int identity primary key clustered ,
column_1 varchar(64) not null ,
Date datetime not null ,
Column_2 varchar (32) not null ,
Column_3 int not null
)
и выберите выглядит
select * from Table where column_1 = @value1 and Date > @value2
Я предлагаю показывать имена столбцов вместо *
в выберите, потому что это может помочь избежать загрузки ненужных данных, а также предложить create nonclustered index
в столбце_1. Однако план выполнения по-прежнему показывает тот же объем памяти, который используется запросом.
Что еще я должен проверить или добавить в запрос?
1 ответ
Вы можете оптимизировать запрос с помощью индексов. Тот, который вы хотите, будет на column_1
а также date
:
create index idx_table_column1_date on table(column_1, date);