![]() |
|
Модераторы: Akina |
![]()
|
|
| KuMa1104 |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 541 Регистрация: 16.4.2009 Где: Ростов-на-Дону Репутация: нет Всего: 3 |
Здравствуйте подскажите какие индексы MS SQL создает по умолчанию?
Я создал тестовую таблицу в ней 6 колонок 10 милионов строк с значениями в диапазонах 1-10, 1-100, 1-1000, 1-10000, 1-100000 , 1- 1000000 как я понимаю запрос вот такого типа должен работать с индексом гораздо быстрее чем без него так как в выборку попадут мало записей.
а если бы я использовал where column1= 5 то тогда количество строк попадавших в выборку будет велико и индекс здесь не нужен теперь я запускаю мои запрос засекаю время потом создаю индекс по столбцу column6 запускаю еще раз. Результат не меняется.
Почему так происходит я думал что индекс должен ускорить выполнение в разы ? Как правильно измерить время которое которое требуется на выполнение запроса? -------------------- Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце. Время - штука относительная... а время обеда - ещё более относительная |
||||
|
|||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 10 Всего: 161 |
Я не понял из вашего поста. Вы создали индекс самостоятельно и не увидели эффекта или же вы ждете что MSSQL сам догадается его построить и удивляетесь, что не видите эффекта?
Добавлено через 5 минут и 51 секунду
Для первичных и уникальных ключей - точно. Могу ошибаться, но, возможно, и для внешних ключей. Но для внешних ключей, наверное, создают индексы case средства. MS вроде допускает наличие fk по не индексированным столбцам. Это сообщение отредактировал(а) Zloxa - 30.3.2012, 19:14 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| KuMa1104 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 541 Регистрация: 16.4.2009 Где: Ростов-на-Дону Репутация: нет Всего: 3 |
Я имел в виду что запускал этот запрос с индексом (который я сам создал) и без него. И в обоих случаях запрос выполнился практически мгновенно, это мне и не понятно, почему без индекса в таблице из 10 миллионов строк запрос выполнился мгновенно, разве полное сканирование таблицы не должно было занять больше времени? -------------------- Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце. Время - штука относительная... а время обеда - ещё более относительная |
|||
|
||||
| Zioma |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 22.8.2007 Репутация: 5 Всего: 5 |
Что бы ответить на эти вопросы, необходимо смотреть планы выполнения. Потому что, даже при наличии индекса при таких "простых" данных движок сервера может посчитать, что использование индекса не оправдано. |
|||
|
||||
| KuMa1104 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 541 Регистрация: 16.4.2009 Где: Ростов-на-Дону Репутация: нет Всего: 3 |
Понятно, спасибо что прояснили.
-------------------- Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце. Время - штука относительная... а время обеда - ещё более относительная |
|||
|
||||
![]()
|
| Правила форума "MS SQL" | |
|
|
Запрещается! Публиковать ссылки и обсуждать взлом чего бы то ни было.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS SQL Server | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |