| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MS SQL Server > индексы по умолчанию |
| Автор: KuMa1104 30.3.2012, 17:54 | ||||
| Здравствуйте подскажите какие индексы MS SQL создает по умолчанию? Я создал тестовую таблицу в ней 6 колонок 10 милионов строк с значениями в диапазонах 1-10, 1-100, 1-1000, 1-10000, 1-100000 , 1- 1000000 как я понимаю запрос вот такого типа должен работать с индексом гораздо быстрее чем без него так как в выборку попадут мало записей.
а если бы я использовал where column1= 5 то тогда количество строк попадавших в выборку будет велико и индекс здесь не нужен теперь я запускаю мои запрос засекаю время потом создаю индекс по столбцу column6 запускаю еще раз. Результат не меняется.
Почему так происходит я думал что индекс должен ускорить выполнение в разы ? Как правильно измерить время которое которое требуется на выполнение запроса? |
| Автор: KuMa1104 31.3.2012, 21:08 | ||
Я имел в виду что запускал этот запрос с индексом (который я сам создал) и без него. И в обоих случаях запрос выполнился практически мгновенно, это мне и не понятно, почему без индекса в таблице из 10 миллионов строк запрос выполнился мгновенно, разве полное сканирование таблицы не должно было занять больше времени? |
| Автор: Zioma 1.4.2012, 10:20 | ||
Что бы ответить на эти вопросы, необходимо смотреть планы выполнения. Потому что, даже при наличии индекса при таких "простых" данных движок сервера может посчитать, что использование индекса не оправдано. |
| Автор: KuMa1104 3.4.2012, 10:37 |
| Понятно, спасибо что прояснили. |