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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> индексы по умолчанию 
:(
    Опции темы
KuMa1104
Дата 30.3.2012, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

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



Здравствуйте подскажите какие индексы MS SQL создает по умолчанию?

Я создал тестовую таблицу в ней 6 колонок 10 милионов строк с значениями
в диапазонах 1-10, 1-100, 1-1000, 1-10000, 1-100000 , 1- 1000000

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

select * from dbo.NumbersSelection
where column6= 10000 


а  если бы я использовал where column1= 5 то тогда количество строк попадавших в выборку будет велико и индекс здесь не нужен 

теперь я запускаю мои запрос засекаю время потом создаю индекс по столбцу column6 запускаю еще раз. Результат не меняется.
Код

select * from dbo.NumbersSelection
where column6= 10000 


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



--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
Zloxa
Дата 30.3.2012, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


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

Репутация: 10
Всего: 161



Я не понял из вашего поста. Вы создали индекс самостоятельно и не увидели эффекта или же вы ждете что MSSQL сам догадается его построить и удивляетесь, что не видите эффекта?

Добавлено через 5 минут и 51 секунду
Цитата(KuMa1104 @  30.3.2012,  18:54 Найти цитируемый пост)
Здравствуйте подскажите какие индексы MS SQL создает по умолчанию?

Для первичных и уникальных ключей - точно.
Могу ошибаться, но, возможно, и для внешних ключей. Но для внешних ключей, наверное, создают индексы case средства. MS вроде допускает наличие fk по не индексированным столбцам.

Это сообщение отредактировал(а) Zloxa - 30.3.2012, 19:14


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
KuMa1104
Дата 31.3.2012, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

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



Цитата(Zloxa @  30.3.2012,  19:13 Найти цитируемый пост)
Я не понял из вашего поста. Вы создали индекс самостоятельно и не увидели эффекта или же вы ждете что MSSQL сам догадается его построить и удивляетесь, что не видите эффекта?


Я имел в виду что запускал этот запрос с индексом (который я сам создал) и без него. И в обоих случаях запрос выполнился практически мгновенно, это мне и не понятно, почему без индекса в таблице из 10 миллионов строк запрос выполнился мгновенно, разве полное сканирование таблицы не должно было занять больше времени?


--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
Zioma
Дата 1.4.2012, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 22.8.2007

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



Цитата(KuMa1104 @ 31.3.2012,  20:08)

Я имел в виду что запускал этот запрос с индексом (который я сам создал) и без него. И в обоих случаях запрос выполнился практически мгновенно, это мне и не понятно, почему без индекса в таблице из 10 миллионов строк запрос выполнился мгновенно, разве полное сканирование таблицы не должно было занять больше времени?

Что бы ответить на эти вопросы, необходимо смотреть планы выполнения.
Потому что, даже при наличии индекса при таких "простых" данных движок сервера может посчитать, что использование индекса не оправдано.


PM MAIL   Вверх
KuMa1104
Дата 3.4.2012, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

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



Понятно, спасибо что прояснили.


--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

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

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

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

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

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


 




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


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

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