Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как лучше сделать индекс?  [new]
relief
Member

Откуда:
Сообщений: 1197
Привет.
Есть таблица Продажи.

у нее есть поля: SaleId, SaleArticul, SaleDate (date), StoreCode, BuyerCode

уникальность гарантируется набором 4 полей SaleArticul, SaleDate (date), StoreCode, BuyerCode

Чаще всего запросы идут в виде
отфильтровать продажи по диапазону дат и сделать Join с другой таблицей по артукулу (строка) nvarchar.

Какой лучше сделать индекс?
19 ноя 12, 15:04    [13495095]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше сделать индекс?  [new]
ROLpogo
Member

Откуда: Реутов
Сообщений: 219
relief,

Я бы добавил поле
ID int identity (1, 1) not NULL
.
На него создал бы уникальный кластерный индекс.
А некластерный на поле SaleDate с include на артикул.
19 ноя 12, 15:56    [13495471]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше сделать индекс?  [new]
relief
Member

Откуда:
Сообщений: 1197
ROLpogo
relief,

Я бы добавил поле
ID int identity (1, 1) not NULL
.
На него создал бы уникальный кластерный индекс.
А некластерный на поле SaleDate с include на артикул.


а порядок полей в индексе какой SaleDate, Articul или наоборот?
SaleDate в Where а Articul в JOIN почти всегда
19 ноя 12, 16:45    [13495809]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше сделать индекс?  [new]
ROLpogo
Member

Откуда: Реутов
Сообщений: 219
relief
ROLpogo
relief,

Я бы добавил поле
ID int identity (1, 1) not NULL
.
На него создал бы уникальный кластерный индекс.
А некластерный на поле SaleDate с include на артикул.


а порядок полей в индексе какой SaleDate, Articul или наоборот?
SaleDate в Where а Articul в JOIN почти всегда


create nonclustered index i_Sale_SaleDate on Sale (SaleDate) include (SaleArticul)
19 ноя 12, 16:49    [13495831]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше сделать индекс?  [new]
Alexander Titkin
Member

Откуда: Москва
Сообщений: 91
Кластерный по дате. Таблица с продажами небось не просто так джойнится, а ради данных из нее, так что просто инклюдом артикула не обойтись.
19 ноя 12, 23:28    [13497356]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше сделать индекс?  [new]
relief
Member

Откуда:
Сообщений: 1197
Alexander Titkin
Кластерный по дате. Таблица с продажами небось не просто так джойнится, а ради данных из нее, так что просто инклюдом артикула не обойтись.


просто кластерный по дате.
а как же по артикулу? по нему все джойны идут.
дата участвуют в between всегда
20 ноя 12, 13:00    [13499604]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше сделать индекс?  [new]
джойны идут
Guest
relief
Alexander Titkin
Кластерный по дате. Таблица с продажами небось не просто так джойнится, а ради данных из нее, так что просто инклюдом артикула не обойтись.


просто кластерный по дате.
а как же по артикулу? по нему все джойны идут.
дата участвуют в between всегда

джойны фкуда? фсправочник товаров? так что серверу помешает взять данные из кластерного индекса таблицы(clustered index seek по дате!!!) и спокойно сделать clustered index seek по ключу в справочнике товаров?
20 ноя 12, 13:45    [13500052]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше сделать индекс?  [new]
джойны идут
Guest
джойны идут
relief
пропущено...


просто кластерный по дате.
а как же по артикулу? по нему все джойны идут.
дата участвуют в between всегда

джойны фкуда? фсправочник товаров? так что серверу помешает взять данные из кластерного индекса таблицы(clustered index seek по дате!!!) и спокойно сделать clustered index seek по ключу в справочнике товаров?

вы же в курсе, что кластерный индекс - это и есть таблица с данным
20 ноя 12, 13:46    [13500066]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше сделать индекс?  [new]
relief
Member

Откуда:
Сообщений: 1197
джойны идут
relief
пропущено...


просто кластерный по дате.
а как же по артикулу? по нему все джойны идут.
дата участвуют в between всегда

джойны фкуда? фсправочник товаров? так что серверу помешает взять данные из кластерного индекса таблицы(clustered index seek по дате!!!) и спокойно сделать clustered index seek по ключу в справочнике товаров?


так в том то и проблема что сейчас нет справочника товаров.
везде просто текстовое значение. нет целостности.
создать справочник не могу.

так что, стоит тогда создать некластерный индекс по артикулу?
20 ноя 12, 14:10    [13500319]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше сделать индекс?  [new]
джойны идут
Guest
relief
джойны идут
пропущено...

джойны фкуда? фсправочник товаров? так что серверу помешает взять данные из кластерного индекса таблицы(clustered index seek по дате!!!) и спокойно сделать clustered index seek по ключу в справочнике товаров?


так в том то и проблема что сейчас нет справочника товаров.
везде просто текстовое значение. нет целостности.
создать справочник не могу.

так что, стоит тогда создать некластерный индекс по артикулу?

пересиль себя, создай справочник.
собирать справочник товаров дистинктом по таблице продаж это...

а названия товара тоже в таблице продаж хранится?
20 ноя 12, 14:16    [13500387]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше сделать индекс?  [new]
джойны идут
Guest
джойны идут
relief
пропущено...


так в том то и проблема что сейчас нет справочника товаров.
везде просто текстовое значение. нет целостности.
создать справочник не могу.

так что, стоит тогда создать некластерный индекс по артикулу?

пересиль себя, создай справочник.
собирать справочник товаров дистинктом по таблице продаж это...

а названия товара тоже в таблице продаж хранится?

зы
а джойны то фкуда идут?
20 ноя 12, 14:17    [13500397]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше сделать индекс?  [new]
relief
Member

Откуда:
Сообщений: 1197
джойны идут
джойны идут
пропущено...

пересиль себя, создай справочник.
собирать справочник товаров дистинктом по таблице продаж это...

а названия товара тоже в таблице продаж хранится?

зы
а джойны то фкуда идут?


не могу создать справочник. пока что.
джойны идут на другие таблицы в которых артикул также хранится строкой
20 ноя 12, 14:47    [13500713]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить