Выбор оптимальных индексов для таблицы SQL Server

У меня есть таблица SQL Server со следующей структурой:

CREATE TABLE [dbo].[Log](
 [LogID] [bigint] IDENTITY(1,1) NOT NULL,
 [A] [int] NOT NULL,
 [B] [int] NOT NULL,
 [C] [int] NOT NULL,
 [D] [int] NOT NULL,
 [E] [int] NOT NULL,
 [Flag1] [bit] NOT NULL,
 [Flag2] [bit] NOT NULL,
 [Flag3] [bit] NOT NULL,
 [Counter] [int] NOT NULL,
 [Start] [datetime] NOT NULL,
 [End] [datetime] NOT NULL)

Таблица используется для регистрации действий. Столбцы A - E представляют внешние ключи, Flag1 - Flag3 указывают определенные состояния журнала, а столбцы Start и Конец обозначает начало и конец действия.

В среднем эта таблица обновляется каждые ~ 30 секунд, а обновление составляет ~ 50 вставок / обновлений.

Пользователь может сделать запрос из пользовательского интерфейса и фильтровать данные по любой заданный столбец и все комбинации столбцов и типов столбцов.

Как лучше всего оптимизировать поиск данных для этой таблицы:

  1. Создайте один «главный» индекс, который будет содержать все эти столбцы
  2. Определите некоторые из наиболее часто используемые комбинации фильтров, например [ A, D, E ], [ A, Start, Завершите ] и т. Д. И создайте для них индексы
  3. Что-нибудь еще ...
7
задан Toni Frankola 31 October 2010 в 21:35
поделиться