|
Методики выбора индексов
|
|||
---|---|---|---|
#18+
Добрый день! Читаю сей документ и не могу понять, как у авторов получаются оценки числа начитываемых страниц для некластеризованных индексов из первого примера ("Choosing an index for a range query"). По каким формулам они считают? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2013, 12:55 |
|
Методики выбора индексов
|
|||
---|---|---|---|
#18+
PM2010, А что конкретно не понятно? Приведи выдержку из текста и выдели непонятное. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 17:46 |
|
Методики выбора индексов
|
|||
---|---|---|---|
#18+
ДокументацияTo read 190,000 matching rows, the query would read approximately 25,300 pages, plus 3 or 4 index pages. 190 тыс строк / 7.5 тыс на строку ~~ 25300. Это понятно. ДокументацияWith a nonclustered index on price and random distribution of price values, using the index to find the rows for this query requires reading about 19 percent of the leaf level of the index, about 1,500 pages. Откуда взялось, что 1.5 тыс страниц - это 19% всех страниц индекса (т.е. в индексе всего порядка 8000 страниц)? Как это посчитать? ДокументацияAnother choice is a nonclustered index on price, title. <...> This index requires about 35,700 leaf pages, so to scan the matching leaf pages requires reading about 19 percent of the pages of this index, or about 6,800 reads. Опять, откуда взялось, что на листовом уровне будет 35700 страниц? 6800 - это количество считываемых страниц или строк на них? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2013, 11:13 |
|
Методики выбора индексов
|
|||
---|---|---|---|
#18+
PM20107.5 тыс на строку 7.5 строк на страницу конечно же. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2013, 11:14 |
|
Методики выбора индексов
|
|||
---|---|---|---|
#18+
PM2010ДокументацияWith a nonclustered index on price and random distribution of price values, using the index to find the rows for this query requires reading about 19 percent of the leaf level of the index, about 1,500 pages. Откуда взялось, что 1.5 тыс страниц - это 19% всех страниц индекса (т.е. в индексе всего порядка 8000 страниц)? Как это посчитать?Это никак не считается, это находится методом чтения таблицы и собирания статистики . В дальнейшем, сервер читает эту статистику, и на ее основе прикидывает сколько страниц индекса может потребоваться и где их искать. В начале страницы (которая веб-страница из документации а не страница сервера) есть общие данные по таблице: ДокументацияSome basic statistics on the table are: The table has 1,000,000 rows, and uses allpages locking. There are 10 rows per page; pages are 75 percent full, so the table has approximately 135,000 pages. 190,000 (19%) of the titles are priced between $20 and $30. Вот последняя строка и есть: "прочитано из статистики". Как эта статистика хранится, как часто она обновляется это все тоже вносит свои проблемы и поэтому оптимизатор может ошибаться в выборе подходящего индекса. PM2010ДокументацияAnother choice is a nonclustered index on price, title. <...> This index requires about 35,700 leaf pages, so to scan the matching leaf pages requires reading about 19 percent of the pages of this index, or about 6,800 reads. Опять, откуда взялось, что на листовом уровне будет 35700 страниц? 6800 - это количество считываемых страниц или строк на них?6800 это страниц в которых "скорее всего" лежат ссылки на подходящие под запрос строки, а 35700 это общее количество страниц в индексе со ссылками на строки. Индекс скорее всего хранится как b-tree и соотвественно имеет "внутренние" страницы которые в этих расчетах впрямую не участвуют. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2013, 20:07 |
|
Методики выбора индексов
|
|||
---|---|---|---|
#18+
White OwlОпять, откуда взялось, что на листовом уровне будет 35700 страниц?А вообще, 35700 берется из расчета: "Количеcтво страниц в таблице" деленное на "размер ключа". Где ключ это либо индексируемое поле целиком, либо хеш из него в паре с физическим номером строки. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2013, 20:12 |
|
|
start [/forum/topic.php?fid=55&msg=38122735&tid=2010016]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
175ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 284ms |
0 / 0 |