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

Откуда:
Сообщений: 202
пипл, помогите опытом.

есть большая таблица > 350 млн.
чёта типа:
create table BIGtbl (
   Id               bigint               identity,
   fk1       bigint               not null,
   fk2        int                  not null,
   constraint PK_BIG primary key (Id)
)

пишем простой запрос :
select * from BIGtbl where fk2 = 1 and fk1= 1 


выберется ровно 8000. логика такова, что на каждый fk2 выберется 8000 записей.
проблема в том, что время выборки запроса около 100 сек :(
понятно, что это из-за большого объема.

может есть какие-то советы по оптимизации ?
помогите линком что где почитать на скорую руку.
27 июн 11, 20:06    [10883519]     Ответить | Цитировать Сообщить модератору
 Re: Производительность  [new]
Мир труд жвачка
Member

Откуда:
Сообщений: 1527
индекс создай по полю fk2, а лучше по двум полям
27 июн 11, 20:22    [10883579]     Ответить | Цитировать Сообщить модератору
 Re: Производительность  [new]
yado4eg
Member

Откуда:
Сообщений: 202
Мир труд жвачка,

   fk1       bigint               not null,
   fk2        int                  not null,

по этим полям ?
какие именно индексы ?
на поле id есть Clustered Index
27 июн 11, 20:29    [10883597]     Ответить | Цитировать Сообщить модератору
 Re: Производительность  [new]
Мир труд жвачка
Member

Откуда:
Сообщений: 1527
Обычный индекс создай по f2 будет быстрее 100сек.
Если f1 еще сильнее уменьшает выборку после f2 то его можешь добавить в индекс. Будет еще быстрее. Индексы по id тут не помогут.
27 июн 11, 20:47    [10883655]     Ответить | Цитировать Сообщить модератору
 Re: Производительность  [new]
yado4eg
Member

Откуда:
Сообщений: 202
Мир труд жвачка,

thx
27 июн 11, 20:55    [10883679]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить