|
В чем прелесть bitslice индексов?
|
|||
---|---|---|---|
#18+
Собственно в этом и вопрос... В документации про эти индексы написано мало - я бы даже сказал совсем ни чего! Сказано, что это специальная форма индекса, которая позволяет очень быстро выполнять некоторые выражения - такие, как сумма и ранжирование. А так же в дальнейшем будут оптимизированы некоторые запросы с использованием таких индексов. Вот собственно и всё. С тех пор уже прошло довольно много времени, а информации до сих пор ноль. Может кто-то из знающих подскажет с чем его едят? Кто-нибудь использует их? На каких запросах он работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 06:38 |
|
В чем прелесть bitslice индексов?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 11:45 |
|
В чем прелесть bitslice индексов?
|
|||
---|---|---|---|
#18+
CJIECAPb, Ну с форматом этих индексов всё понятно, теперь осталось разобраться с этим: Кто-нибудь использует их? На каких запросах он работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 13:07 |
|
В чем прелесть bitslice индексов?
|
|||
---|---|---|---|
#18+
SocratdvКто-нибудь использует их? Наверняка ) Но мы например пока обходимся Bitmap-индексами SocratdvНа каких запросах он работает? Что значит "работает"? Использует ли конкретный запрос данный индекс можно увидеть по плану запроса. Эффективность этого типа индексов надо оценивать на конкретном наборе данных и конкретном запросе. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 13:56 |
|
В чем прелесть bitslice индексов?
|
|||
---|---|---|---|
#18+
SocratdvCJIECAPb, Ну с форматом этих индексов всё понятно, теперь осталось разобраться с этим: Кто-нибудь использует их? На каких запросах он работает? Иногда используют. Эффективно на операциях типа получить сумму. Если выигрыш на операции два порядка - то почему бы и не пойти на поддержку такого индекса. Смотрите, взвешивайте факторы что у вас в проектах, может оказаться и бесполезно, смотря что у вас за факторы. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 15:35 |
|
В чем прелесть bitslice индексов?
|
|||
---|---|---|---|
#18+
Ну что кто-то их использует это я и так понимаю - не с проста ж их создавали! :) Вот только кто и для каких целей? Хотелось бы реальных примеров использования этих индексов на конкретных запросах... Например, у меня есть такие поля: Код: plaintext 1. 2.
Хочется быстро получить результат подобного запроса: Код: plaintext
Суммирование хотелось бы убыстрить. Какие bitslice индексы можно повесить в данном случае? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2009, 09:56 |
|
В чем прелесть bitslice индексов?
|
|||
---|---|---|---|
#18+
Socratdv, Сомневаюсь, что такой запрос может быть сильно ускорен bitslice-индексами Они позволяют ускорять прежде всего запросы вида: Код: plaintext 1.
Фактически, bitslice-индексы служат тем же целям что и bitmap, но занимают меньше места в базе. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2009, 10:21 |
|
В чем прелесть bitslice индексов?
|
|||
---|---|---|---|
#18+
SocratdvНу что кто-то их использует это я и так понимаю - не с проста ж их создавали! :) Вот только кто и для каких целей? Хотелось бы реальных примеров использования этих индексов на конкретных запросах... Например, у меня есть такие поля: Код: plaintext 1. 2.
Хочется быстро получить результат подобного запроса: Код: plaintext
Суммирование хотелось бы убыстрить. Какие bitslice индексы можно повесить в данном случае? Насколько я помню, именно такой запрос будет ускорен. Для этого вы должны построить bitmap-индексы для Flag1 и Flag2 и bitslice для Count. Попробуйте выполнить такой запрос без bitslice-индексом и с ним, только нужно будет перестроить индексы между запросами. Посмотрите время выполнения и план запроса. Вадим ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2009, 15:51 |
|
В чем прелесть bitslice индексов?
|
|||
---|---|---|---|
#18+
Несколько слайдов про bitslice-индексы есть в моей презентации "Решение задачи BI и BAM на платформе для интеграции и разработки приложений InterSystems Ensemble" на конференции корпоративные базы данных 2007. Посмотрите скрытые слайды 34-43 про bitmap- и bitslice-индексы. Bitslice-индексы уже сейчас используются SQL-оптимизатором Cache' для ограниченного ряда запросов. Постепенно количество запросов, в которых bitslice-индексы могут помочь, увеличивается. Собственная реализация BitSlice-индексов применяется в свободно распространяемом продукте Hyperindex с открытым кодом, предназначенном для создании витрин данных, и в продукте InterSystems DeepSee для создания real-time BI-приложений. Вот фрагмент документации какой-то старой версии Hyperindex на эту тему: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
В следующих версиях Cache' bitslice-индексы будут более активно применяться SQL-оптимизатором. DeepSee в следующих версиях будет использовать стандартные bitslice-индексы, те же, что использует SQL-оптимизатор. В DeepSee также появится язык запросов MDX, который является стандартным для BI-продуктов, но это уже другая тема... Вадим ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2009, 16:14 |
|
В чем прелесть bitslice индексов?
|
|||
---|---|---|---|
#18+
Попробовал сделать Bitslice индекс, пока лыжи не едут Index Status On Status; Index StatusSlice On Status [ Type = bitslice ]; select count(*) from table1 where status=0 время 2.8 секунд(за счет кэширования), счетчик порядка миллиона используется старый индекс. Подскажите, как задействовать новый индекс, какие запросы для этого нужны? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2011, 09:18 |
|
В чем прелесть bitslice индексов?
|
|||
---|---|---|---|
#18+
Блок А.Н. , Class del.b Extends %Persistent { Index ia1 On a [ Type = index ]; Index ia2 On a [ Type = bitslice ]; Index ia3 On a [ Type = bitmap ]; Index iStatus On Status [ Type = bitmap ]; Property a As %Integer; Property Status As %Boolean; ClassMethod Fill(N As %Integer = {1e6}) As %Status { do DISABLE^%SYS.NOJRN do ##class(del.b).%KillExtent() set ^del.bD=N for i=1:1:N set ^del.bD(i)=$listbuild("",$r(1e2),$r(2)) do ##class(del.b).%BuildIndices() do $system.SQL.TuneTable("del.b",1) do ENABLE^%SYS.NOJRN quit $$$OK } } Посмотрите используемые индексы для запросов: Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2011, 12:08 |
|
В чем прелесть bitslice индексов?
|
|||
---|---|---|---|
#18+
Хм, все равно не понимаю bitslice индекс включился только на запросе Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2011, 11:30 |
|
|
start [/forum/topic.php?fid=39&fpage=26&tid=1557102]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
77ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 192ms |
0 / 0 |