
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
24.06.2002, 13:09:19
|
|||
|---|---|---|---|
|
|||
Не используются индексы в запросах!! |
|||
|
#18+
Hello, All! Имеем табличку: CREATE TABLE [dbo].[IN_FORM] ( [N_BASE] [int] NOT NULL , [DAT_FORM] [datetime] NOT NULL , [N_FORM] [int] NOT NULL , [NOM_KOL] [int] NOT NULL , [KOD_STR] [varchar] (10) COLLATE Cyrillic_General_CI_AS NOT NULL , [SUM_STR] [numeric](15, 2) NULL , [SM_STR] [numeric](15, 2) NULL , [OKPO] [varchar] (8) COLLATE Cyrillic_General_CI_AS NULL , [OKONH] [int] NULL ) ON [PRIMARY] CREATE INDEX [IX_IN_FORM_DAT_FORM] ON [dbo].[IN_FORM]([DAT_FORM]) ON [PRIMARY] CREATE INDEX [IX_IN_FORM_N_BASE] ON [dbo].[IN_FORM]([N_BASE]) ON [PRIMARY] CREATE INDEX [IX_IN_FORM_KOD_STR] ON [dbo].[IN_FORM]([KOD_STR]) ON [PRIMARY] CREATE INDEX [IX_IN_FORM_NOM_KOL] ON [dbo].[IN_FORM]([NOM_KOL]) ON [PRIMARY] CREATE INDEX [IX_IN_FORM_N_FORM] ON [dbo].[IN_FORM]([N_FORM]) ON [PRIMARY] CREATE UNIQUE INDEX [IX_IN_FORM] ON [dbo].[IN_FORM]([N_BASE], [DAT_FORM], [KOD_STR], [NOM_KOL], [OKONH]) ON [PRIMARY] Пишем запрос select * from in_form where kod_str='2701002' Execution Plan показывает - Table Scan 100% Вопрос - почему не используется индекс по полю? Если подставить в условие другое поле, по которому есть индекс, то он тоже не используется - ? С уважением Коговюк Игорь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.06.2002, 13:17:18
|
|||
|---|---|---|---|
Не используются индексы в запросах!! |
|||
|
#18+
Похоже оптимизатор затыкается на твоем уникальном индексе. Попробуй хинты использовать... Или просто обновить статистику :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.06.2002, 13:45:08
|
|||
|---|---|---|---|
|
|||
Не используются индексы в запросах!! |
|||
|
#18+
Update statistics in_form - не помогло! Шо еще можно сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.06.2002, 14:01:11
|
|||
|---|---|---|---|
Не используются индексы в запросах!! |
|||
|
#18+
Я тоже сталкивался с этим оптимизатор запросов несмотря на то что есть индекс по полю его не использует, хотя статистика обновлена а все потому что при поиске некоторого значения данному значению удовлетворяет не малое количество записей. Т.е. если к примеру при равномерном распределении записей по таблице получается что нужная запись будет присутствовать в каждом экстенте то нет смысла лазить по индексу лучше просто выполнить скан. Затем я решил явно указать оптимизатору использовать нужный индекс и в результате запрос выполнился чуть быстрее. Быстрее потому что на самом деле данные в таблице удовлетворяющие условию поиска были не равномерно раскиданы по таблице, а например в начале или в конце таблицы. Посмотри что показывает dbcc showstatistics. Там в каком то столбце напротив каждого значения указано количество вхождений. Так вот поэкспериментировав я взял некое другое значение для поиска которое реже встречается и он стал использовать индекс. Так что нет ничего страшного в том что он не использует, значит так надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.06.2002, 16:33:20
|
|||
|---|---|---|---|
Не используются индексы в запросах!! |
|||
|
#18+
Кстати, поиск по некластерному индексу происходит быстрее если в таблице есть кластерный индекс. Так что ЛЮБАЯ таблица, имеющая индекс ДОЛЖНА иметь кластерный индекс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.06.2002, 16:52:12
|
|||
|---|---|---|---|
Не используются индексы в запросах!! |
|||
|
#18+
IMHO он так работает, потому что стоит select * ... Если поставить select <только нужные столбцы> и сделать покрывающий индекс (см. covered index в BOL) - будет летать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.06.2002, 17:36:17
|
|||
|---|---|---|---|
Не используются индексы в запросах!! |
|||
|
#18+
а сколько всего записей в таблице? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.06.2002, 09:18:13
|
|||
|---|---|---|---|
|
|||
Не используются индексы в запросах!! |
|||
|
#18+
Записей в таблице ~550тысяч. Пробовал даже так - удаляю все индексы, до одного, делаю новый - по одному полю, делаю запрос - результат тотже. update statistics тоже не помогает. Страный сервер, блин. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&mobile=1&tid=1822194]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
40ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 190ms |
| total: | 285ms |

| 0 / 0 |
