powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Вопрос о ключах и индексах
25 сообщений из 30, страница 1 из 2
Вопрос о ключах и индексах
    #32816785
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предположим, есть БД на MSSQL2k.
4 таблицы: Время, Продукты, Клиенты, Факты, на основании которых строится OLAP куб на MSAS2k. Насколько важно для MSAS иметь в таблицах ключи и индексы? В данный момент между таблицами существуют только логические связи типа Клиент.id = Факт.Клиент, не выраженные никак ни в ключах, ни в индексах.
...
Рейтинг: 0 / 0
Вопрос о ключах и индексах
    #32816835
DmitryS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Важно для MS AS. Ещё важнее для Вас:-)
...
Рейтинг: 0 / 0
Вопрос о ключах и индексах
    #32816861
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне конкретно это не важно. база перевалочная, и с ней работает только MSAS. а вот для него почему важно? подробнее кто может на это тему написать?
...
Рейтинг: 0 / 0
Вопрос о ключах и индексах
    #32817074
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
профайлером посмотрите какие запросы передаёт МС АС сиквелу, а потом сравните их планы выполнения в QA

Если вам лень, могу предположить результат:
запросы примерно такие
Код: plaintext
select ... from ... where t1.f1=t2.f2 and t1.f3=t2.f4
без индекса будет table scan, с индексом - index seek
index seek на несколько порядков быстрее
...
Рейтинг: 0 / 0
Вопрос о ключах и индексах
    #32817084
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А Вы уверены, что в Вашей базе данные не дублируются и ссылочная целостность не нарушена? Как Вы это обеспечиваете?
Если не ключами и индексами, то это можно делать на этапе ETL. Если делаете на этапе ETL, то, возможно, можно от них отказаться.
Однако, я не уверен, что AS не использует индексы при построении куба.
Таким образом, ответ такой - индексы и ключи нужны для обеспечения качества данных, нужны ли она AS, я не знаю.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Вопрос о ключах и индексах
    #32817110
KirixB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На мой взгляд ключи и индексы нужны ,если используешь ROLAP или HOLAP ,так как MOLAP создает собственную базу и обращение к MSSQL не осуществляет
Ну а по существу в момент процессинга куба лучше иметь в наличии все возможные ключи ,так как связи которые имеются в кубе будут эффективнее генерится
...
Рейтинг: 0 / 0
Вопрос о ключах и индексах
    #32817135
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Biryukovбез индекса будет table scan, с индексом - index seek
index seek на несколько порядков быстрее

Дмитрий, а Вы уверены, что джойн двух таблиц при наличии индексов будет обязательно быстрее? Точнее, будет ли MS SQL использовать эти индексы при джойне отаблиц?


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Вопрос о ключах и индексах
    #32817151
LordOfSilence
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Dmitry Biryukov
Там идет inner join. Однако если схема куба полностью оптимизирована, то картина меняется. Для меня лично этот вопрос остается открытым. Я экспериментировал с различными комбинациями ключей/индексов и без них.
Какой-либо ощутимой разницы я не обнаружил (это без оптимизации схемы).
Возможно, плохо экспериментировал. Возможно, мои объемы просто не те. У меня не многотерабайтные базы, если честно. :-)
...
Рейтинг: 0 / 0
Вопрос о ключах и индексах
    #32817203
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ссылочная целостность обеспечивается в рабочей базе, а рассматриваемая база была создана только для того, чтобы обеспечить более "прозрачный" перенос данных в OLAP.
Время выборки и обновления кубов не критично - 5 минут в этом случае роли не играют.
А вот использует ли MSAS эту информацию (индексы и ключи) для более эффективного связывания измерений....
Копнем глубже... Скажем так: из таблицы Продукт создается 5 измерений:
Категория, Марка, Производитель, Упаковка, Вес (желание заказчика и об эффективности такого подхода здесь не говорим). В таблице продукт есть все и их идентификаторы и наименования. (Таблица Продукт не что иное как денормализованная версий этих таблиц из рабочей базы).
При создании куба, что все эти измерения не зависят друг от друга никак. Пример: Марка по строкам Вес по колонкам даст нам у каждой марки все возможные веса, даже в том случае если таковых нет. Или еще хуже: Производитель и Марка по строкам даст нам пересечение каждого производителя с каждой маркой (если не опускать пустоты). Так вот наличие ключей в исходных таблицах окажет какую-нибудь помощь MSAS при создании куба? В дальнейшем будет ли MSAS оптимизировать подобного рода пересечения при запросах - т.к. 90% информации отсутствует?
...
Рейтинг: 0 / 0
Вопрос о ключах и индексах
    #32817227
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин ЛисянскийДмитрий, а Вы уверены, что джойн двух таблиц при наличии индексов будет обязательно быстрее? Точнее, будет ли MS SQL использовать эти индексы при джойне отаблиц?
Чтобы получить развёрнутый ответ надо спросить в формуе по сиквелу. Я думаю что будет.

LordOfSilence2 Dmitry Biryukov
Там идет inner join.
Просто включите профайлер и посмотрите. Джойном это называется только в теории. Cама конструкция строится через where.

LordOfSilence
Какой-либо ощутимой разницы я не обнаружил

Дело видимо в том, что сама выборка данных из базы занимает малую долю во всём процессе создания куба.
...
Рейтинг: 0 / 0
Вопрос о ключах и индексах
    #32817242
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ShIgor
Исходя из предыдущего поста вам помогут виртуальные измерения.
Создаёте измерение Продукты со свойствами Категория, Марка, Производитель, Упаковка, Вес. А потом ещё сколько нужно виртуальных, каждое из которых основано на измерении Продукты.
Тогда эта информация будет учитываться
В свойствах виртуального измерения важно свойство "Depends on Dimension"
...
Рейтинг: 0 / 0
Вопрос о ключах и индексах
    #32817246
LordOfSilence
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry BiryukovДжойном это называется только в теории. Cама конструкция строится через where.

Не спорю. Хотя мне почему-то мерещилось, что там именно join прописан. Возможно, я запамятовал. В общем-то, не принципиально. :-)

Dmitry BiryukovДело видимо в том, что сама выборка данных из базы занимает малую долю во всём процессе создания куба.
Я как раз о самой выборке и говорил.
...
Рейтинг: 0 / 0
Вопрос о ключах и индексах
    #32817260
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LordOfSilence Dmitry BiryukovДело видимо в том, что сама выборка данных из базы занимает малую долю во всём процессе создания куба.
Я как раз о самой выборке и говорил.
А как вы отделили время выборки от общего времени процессинга куба?
...
Рейтинг: 0 / 0
Вопрос о ключах и индексах
    #32817313
LordOfSilence
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий, ну мы с Вами что, не Кулибины, что ли? Естественно, по-расейски, на глазок!
...
Рейтинг: 0 / 0
Вопрос о ключах и индексах
    #32817401
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин ЛисянскийДмитрий, а Вы уверены, что джойн двух таблиц при наличии индексов будет обязательно быстрее?
Безусловно не обязательно. Но может быть быстрее.

Константин ЛисянскийТочнее, будет ли MS SQL использовать эти индексы при джойне таблиц?
Зависит от оценки плана. Которая, в свою очередь, по словам довольно компетентного в MS SQL человека , зависит в том числе и от наличия constraint-ов (а не просто индексов).
...
Рейтинг: 0 / 0
Вопрос о ключах и индексах
    #32817406
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgorПредположим, есть БД на MSSQL2k.
4 таблицы: Время, Продукты, Клиенты, Факты, на основании которых строится OLAP куб на MSAS2k. Насколько важно для MSAS иметь в таблицах ключи и индексы? В данный момент между таблицами существуют только логические связи типа Клиент.id = Факт.Клиент, не выраженные никак ни в ключах, ни в индексах.


ну при таком раскладе я вас спрошу, а зачем вам ключи, PK и FK, в SQL базе.
можно и без них, но с ними спокойнее, так вот это "спокойнее" стоит того чтобы их иметь.
если вы "лоханетесь" в SQL скриптах (а это происходит с каждым, только с ранней вероятностью), то вы это обнаружите сразу, на этапе переноса данных, а не во время процессинга кубов, а еще чего хуже - из отчетов с "кривыми" цифрами.
...
Рейтинг: 0 / 0
Вопрос о ключах и индексах
    #32817413
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
backfire меня опередил :)
Присоединяюсь.
С другой стороны, вопрос здесь был не об этом. В любом случае, думаю, стоит перехватить SQL, который идёт от AS к SQL Server и посмотреть план запроса с индексами и без них. Откуда можно будет понять, используются ли они или нет.



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Вопрос о ключах и индексах
    #32817462
DmitryS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подводя итоги:
1. Схему надо оптимизировать. При оптимизированной схеме, джойны исчезают. И эти индексы не нужны. FK нужны на мой взгляд. Не только на мой, но лечить не буду:-)
2. Индексы нужны при инкрементальном процессинге соответствующие.
...
Рейтинг: 0 / 0
Вопрос о ключах и индексах
    #32817556
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянскийbackfire меня опередил :)
Присоединяюсь.
С другой стороны, вопрос здесь был не об этом. В любом случае, думаю, стоит перехватить SQL, который идёт от AS к SQL Server и посмотреть план запроса с индексами и без них. Откуда можно будет понять, используются ли они или нет.

С уважением,
Константин Лисянский
http://lissianski.narod.ru

Ну я отвечал только на первую часть вопроса (о ключах).
А вторую DmitryS подытожил как нельзя лучше, так что даже к профайлеру ходить не надо.
...
Рейтинг: 0 / 0
Вопрос о ключах и индексах
    #32817586
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Единственно, мне не очень понятно, что за оптимизированная схема такая, от которой джойны исчезают.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Вопрос о ключах и индексах
    #32817604
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин ЛисянскийЕдинственно, мне не очень понятно, что за оптимизированная схема такая, от которой джойны исчезают.


С уважением,
Константин Лисянский
http://lissianski.narod.ru

К теме топика это напрямую не относится, но так и быть поясню:

оптимизированная схема это если ключ листового уровня измерения является первичным ключем таблицы измерения, а измерение плоским, тогда при процессинге куба таблица измерения не включается в запрос.

Лирическое отступление:
Если кому то на ум придет оптимизировать схему на связи без DRI - "гаси свет и лови тараканов".
...
Рейтинг: 0 / 0
Вопрос о ключах и индексах
    #32817607
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в догонку

BOL:Optimizing Cube Schemas
...
Рейтинг: 0 / 0
Вопрос о ключах и индексах
    #32818025
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не думал, что тема многим окажется так интересна. Спасибо за поддержку.
В общем можно подвести черту.
Ключи и индексы нужны для себя любимого, чтоб где-то не лопухнутся.
MSASу наши ключи глубоко, мягко скажем, безразличны и влияют они только на скорость выборки при обновлении куба. При построении кубов MSAS использует собственные средства и правила (Schema Optimizing) основанные только на внутренней логике, заложенной его разработчиками.
Следовательно к вопросу выборки информации из куба ни ключи, ни индексы в источнике отношения не имеют и никак на этот процесс не влияют.

2 Dmitry Biryukov
Про "виртуальные измерения": я так и сделал с самого начала, начитавшись, что именно в этой ситуации они мне помогут, но как оказалось совсем не помогают (или этого не видно) т.к. несуществующие связи все-равно остались (каждый производитель имеет все марки продуктов). К тому же в BOL ясно написано, что в виртуалных измерениях свойство Depends On Dimension имеет совсем другое значение, а именно указывает только на то, на основании какого измерения построено виртуальное. Потом, для виртуальных не создается никакая агрегация и все считается во время выполнения запроса - значит будет все медленнее. Я переделал измерения с виртуальных на реальные, установил свойство Depends on... Однако ничего не получилось - все осталось на своих местах (все производители и у каждого все продукты). Если Вы внимательно перечитаете информацию из BOL, то поймете, что это свойство влияет только на расчет предварительного размера базы в процессе создания агрегатов. Да, конечно агрегат для несуществующих пересечений не создается, но при запросе информации пересечение все же имеет место, хотя и возвращает в этом случае NULL. Вот эти изыскания и натолкнули меня на мысль о возможной необходимости ключей в источнике, но как видимо, я ошибался. Неужели придется делать столько иерархий для измерения продукт сколько возможных (необходимых) комбинаций подобного рода измерений существует, т.е. вместо 5 измерений у меня будет в худшем случае 320 иерархий?
...
Рейтинг: 0 / 0
Вопрос о ключах и индексах
    #32818203
олапист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
backfire
Лирическое отступление:
Если кому то на ум придет оптимизировать схему на связи без DRI - "гаси свет и лови тараканов".

Я дико извеняюсь за свое ламерство, но что такое "схема на связи без DRI" ?
...
Рейтинг: 0 / 0
Вопрос о ключах и индексах
    #32818265
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
олапист backfire
Лирическое отступление:
Если кому то на ум придет оптимизировать схему на связи без DRI - "гаси свет и лови тараканов".

Я дико извеняюсь за свое ламерство, но что такое "схема на связи без DRI" ?


В дизацнере кубов вы можете строить связи между таблицой фактов и измерений как вам бог на душу положит, существование Foreign Key (DRI - декларативная сылочная целостнось) там не требуется, но и результат в этом случае - вся ответственность на том кто это делал.
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Вопрос о ключах и индексах
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]