Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ИНДЕКСЫ, Не работает 
:(
    Опции темы
Artemon
Дата 1.2.2006, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: нет
Всего: 20



Везде сказано, что индексы ускорят поиск по БД.


Имеется таблица примерно следующего содержания:

ID_ARTIST - NUM
ID_GENRE - NUM
ARTIST - STR


Создаю индекс: CRATE INDEX NEW_INDEX ON ARTISTS (ARTIST)

Выполняю запрос: SELECT ARTIST FROM ARTIST WHERE ARTIST LIKE '%'
ORDER BY ARTIST

Но почему-то увеличение скорости поиска не наблюдается.


P.S.
Индекс создаю для уже заполненной таблицы





--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
boevik
Дата 1.2.2006, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 15
Всего: 35



Artemon, твоем случае надо выбрать всю таблицу, и индекс не поможет.
Я неуверен, что при использывании like индекс поможет.
Вот если бы поиск происходил бы по определенному ID, тогда индеь по ID ускорит поиск по таблице.
Добавлено @ 12:15
Что б убедится в том помогает индекс или нет, надо посмотреть execution plan запроса.


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
Akina
Дата 1.2.2006, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



При выборке ВСЕЙ таблицы некластерный индекс только увеличит время выборки, если его использовать.
Для ускорения выборки по Like части данных надо строить полнотекстовый индекс - иначе индекс тоже не сможет использоваться (за исключением случая когда в шаблоне статические символы только в начале шаблона).
См. справку - оптимизация запросов на выборку.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Vit
Дата 1.2.2006, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 5
Всего: 207



Открываем Query Analyser, кладём туда твой запрос, смотрим план выполнения запроса, чего там используется и сколько ресурсов на это тратиться... Там есть ответы на все подобные вопросы. Кроме того можно директивно заставить запрос использовать тот или иной индекс и посмотреть что из этого получится.

PS. Кстати не понял глубинного смысла конструкции:


Код

 WHERE ARTIST LIKE '%'



--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Artemon
Дата 1.2.2006, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: нет
Всего: 20



Я привел примерный запрос, на самом деле, вмечто '%' - строка.

Я даже не подумал, что это может изменить суть вопроса........
Добавлено @ 17:46
Цитата

См. справку - оптимизация запросов на выборку.



Где мне эту справку посмоьреть?


--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
boevik
Дата 1.2.2006, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 15
Всего: 35



Именно от условия и зависит, какой индекс и каким образом будет работать в запросе.



--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
Vit
Дата 1.2.2006, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 5
Всего: 207



Цитата(Artemon @ 1.2.2006, 08:36 Найти цитируемый пост)

Я даже не подумал, что это может изменить суть вопроса........

Приведенные 2 запроса будут работать совершенно по разному:

Код

Select * From ... Where Field like 'Something%'

Код

Select * From ... Where Field like '%Something'



--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Artemon
Дата 1.2.2006, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: нет
Всего: 20



При таком запросе индекс должен ускорять работу или нет?


--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
boevik
Дата 1.2.2006, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 15
Всего: 35



Например, если есть индекс по полю Field, то при таком запросе
Код

Select * From ... Where Field like 'Something%'

выполняется index seek, т.е. ускоряет работу.

А при таком
Код

Select * From ... Where Field like '%Something%'

index scan или table scan, т.е. наличие индекса не ускоряет выполнение запроса.

Это сообщение отредактировал(а) boevik - 1.2.2006, 20:10


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
Artemon
Дата 1.2.2006, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: нет
Всего: 20



Понятно.


--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
Vit
Дата 1.2.2006, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 5
Всего: 207



Цитата(Artemon @ 1.2.2006, 10:55 Найти цитируемый пост)

При таком запросе индекс должен ускорять работу или нет?


А последовать совету слабо?:

Цитата(Vit @ 1.2.2006, 07:08 Найти цитируемый пост)

Открываем Query Analyser, кладём туда твой запрос, смотрим план выполнения запроса, чего там используется и сколько ресурсов на это тратиться... Там есть ответы на все подобные вопросы. Кроме того можно директивно заставить запрос использовать тот или иной индекс и посмотреть что из этого получится.



То что тебе Боевик сказал - видно же невооружённым глазом... Достаточно открыть и посмотреть... smile


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Artemon
Дата 2.2.2006, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: нет
Всего: 20



Vit, я SQL SERVER первый раз увидел неделю назад.

я пока еще не ориентируюсь не в самом SQL SERVER'е

Да и в запросах тоже слабоват............


P.S.
В Query Analyser почему-то не выдается время выполнения запроса.
Куча всякой инфы есть, а времени нет, или я слипой.



--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
Vit
Дата 2.2.2006, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 5
Всего: 207



Время есть - внизу в правом углу. Кроме того зайди в меню и включи - смотреть план выполнения запроса, тогда можно будет посмотреть схему запроса и затраты времени на каждый шаг


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.0529 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.