Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Горизонтально секционированных представлений и индексы / 11 сообщений из 11, страница 1 из 1
27.07.2001, 08:33
    #32010522
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Горизонтально секционированных представлений и индексы
Привет всем !

Начиавшись статьи http://www.osp.ru/win2000/sql/2000/03/311.htm, попробовал все это реализовать на практике.

С созданием таблиц и представлений проблем нет - тут все работает.

НО, когда я попробовал предложить ITW мои типовые запросы, переписанные уже с использованием новых представлений, то он после долгих раздумий(т.е.) не выдал мне вообще НИКАКИХ рекомендаций.
Только если устанавливать опцию Add indexed views, то для каждого запроса ITW создает 5-6 дополнительных представлений.

Неужели индексы действительно не нужны ? Но ведь таблицы большие 10-12 млн записей каждая и их 15 штук. Или придется самостоятельно решать какие индексы нужны/не нужны ?

PS
SQL2000
При использовании одной большой таблицы и тех же запросов ITW выдает рекомендации по индексам и статистикам.
...
Рейтинг: 0 / 0
27.07.2001, 08:52
    #32010528
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Горизонтально секционированных представлений и индексы
Может и не в тему, но...
Я по Вашей рекомендации прочитал эту статью. И у меня возник ряд выводов. Особенно что касается индексов. Ведь даже в самой статье показан скреен QA где явно виден Table Scan для таблицы. Выходит, что при таком большом числе записей 10...30 млн, индекс может стать монотонным (ест. кроме первичного ключа). В этом случаи оптим. запросов принимает решение просто делать TS. И при проверке получается действительно быстрее. Если в хинте явно указать индекс, то стоимость резко возрастает, а производительность падает. Имел реальный трабл, когда изначально проиндексировал таблицу, создал и отладил запрос, использующийся в приложении. В QA - Index Seek. Все в порядке... Но в определенный момен прил. стало поддтормаживать. Проверил тотже запрос в QA - Table Scan. Может кто нибудь знает (или скажет где почитать), при каком отношении число ун. значений поля записи/число записей для индексированного поля SQL переходит на Table Scan. Поправьте, если я не прав в своих выводах.
...
Рейтинг: 0 / 0
30.07.2001, 07:19
    #32010630
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Горизонтально секционированных представлений и индексы
Ну так что, неужели придется "жить" без индексов ???

Попробовал построить для каждой отдельной таблицы индексы, которые ITW предлагал при использовании одной большой таблицы - время выполнения увеличилось ~40%, хотя в плане оптимизатор показывает, что использует индексы.
...
Рейтинг: 0 / 0
30.07.2001, 07:37
    #32010634
Genady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Горизонтально секционированных представлений и индексы
2 Glory

А разделенные таблицы большими получились?

>время выполнения увеличилось ~40%

Теперь понятно почему ITW не рекомендовал создание индекса?

Дело в том что индекс может и замедлять работу поэтому и существует оптимизатор, который и решает использовать индекс или нет.
...
Рейтинг: 0 / 0
30.07.2001, 07:39
    #32010637
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Горизонтально секционированных представлений и индексы
Насчет ITW. Сталкивался пару раз с ситуацией, при которой построение индекса по рекомендациям ITW приводило к снижению производительности
...
Рейтинг: 0 / 0
30.07.2001, 07:50
    #32010639
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Горизонтально секционированных представлений и индексы
2 Genady
Каждая таблица 10-12 млн записей, размер каждой таблицы от 1,5 до 3 Гб.

>Теперь понятно почему ITW не рекомендовал создание индекса?
Но ведь у таблиц НЕТ индексов - неужели сканирование всей таблицы ВСЕГДА будет быстрее, чем скажем сканирование с использованием кластерного индекса ?


2 pkarklin
>приводило к снижению производительности
Данного запроса или других запросов ?

Я использую ITW таким образом - при запущенном Profiler выполняю 15-20 запросов. Затем на trace файл, полученный от Profiler, натравливаю ITW.
...
Рейтинг: 0 / 0
30.07.2001, 08:01
    #32010641
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Горизонтально секционированных представлений и индексы
To Glory!

Запроса, для которого ITW предлагает построить индекс. Строим в сответсвии с тем, что он предложил. В результате время выполнения запроса увеличивается.

Работаю на 7.0
...
Рейтинг: 0 / 0
30.07.2001, 08:06
    #32010643
Genady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Горизонтально секционированных представлений и индексы
>Но ведь у таблиц НЕТ индексов - неужели сканирование всей таблицы ВСЕГДА будет быстрее, чем скажем сканирование с использованием кластерного индекса ?

А РК у вас некластерный?

>Я использую ITW таким образом - при запущенном Profiler выполняю 15-20 запросов. Затем на trace файл, полученный от Profiler, натравливаю ITW.

На самом деле рекомендации ITW зависят от запросов это относится и к опыту pkarklin, нужно что бы запросы были наиболее типичны.

Использовать или нет индексы решает оптимизатор вычисляя стоимость зопроса, на курсах по оптимизации нам показывали, что иногда бывает достаточно одной добавочной записи в возвращяемом наборе, чтобы опимизатор перешел на скан таблицы. Ну и не стоит забывать о фрагментации
...
Рейтинг: 0 / 0
30.07.2001, 08:25
    #32010645
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Горизонтально секционированных представлений и индексы
Я же про это и говорю - у таблиц НЕТ НИКАКИХ индексов.

Конечно, я использую типовые запросы - конкретно это процедуры, которые запускаются с рабочих мест. Из них я выбрал 20, которые наиболее часто используются.

После первого запуска у таблиц появилась статистика, т.к. на сервер выключено её автоматическое создание
...
Рейтинг: 0 / 0
30.07.2001, 08:29
    #32010646
Genady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Горизонтально секционированных представлений и индексы
>НЕТ НИКАКИХ индексов.

И РК нет???

>Конечно, я использую типовые запросы

Ну так ITW и считает, что на Ваших запросах невыгодно создание индексов.
Ваши запросы возвращяют большой набор данных? Если да то, обычно чем больший набор возвращается, тем меньше вероятность использования индекса. За исключением кластерного, конечно.
...
Рейтинг: 0 / 0
30.07.2001, 08:39
    #32010648
Александр Гладченко
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Горизонтально секционированных представлений и индексы
Без файла нагрузки для Index Tuning Wizard (причём, максимально приближенного к реальным условиям) результаты могут быть не предсказуемые. Очень многое влияет на время исполнения запроса и очень многое может помешать оптимизатору. Одной статьи, которая была указана в начале, недостаточно. На этом сайте Вы найдёте ещё несколько статей, рассматривающих разные аспекты оптимизации запросов. Здесь уже указывали на фрагментацию, селективность и пр. Всё нужно решать в комплексе, возможно, даже путём пересмотра запросов или использованием подсказок оптимизатору. Многие интересные идеи уже высказывались и в этом форуме. Запаситесь терпением, изучите вопрос более детально и Вы сможети найти правильное решение.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Горизонтально секционированных представлений и индексы / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]