Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как лучше два индекса или один?
|
|||
|---|---|---|---|
|
#18+
DB2 express-C 9.5 есть вот такой селект из временной таблички: Код: plaintext 1. 2. 3. что лучше сделать 2 индекса по "Object, Type" и по "FinYear, FinMonth" или один сразу по всем колонкам? сделал explain - для обоих вариантов выдает одинаковую стоимость, может тогда и не парится? сделать один индекс из 4-х полей, раз стоимость одинаковая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2010, 10:17 |
|
||
|
Как лучше два индекса или один?
|
|||
|---|---|---|---|
|
#18+
Ключевое слово MDC. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2010, 12:13 |
|
||
|
Как лучше два индекса или один?
|
|||
|---|---|---|---|
|
#18+
xz321, А временные таблицы и MDC индексы можно совмещать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2010, 19:08 |
|
||
|
Как лучше два индекса или один?
|
|||
|---|---|---|---|
|
#18+
Если Express-C когда либо и поддерживала MDC, то не в 9-й версии. Да MDC ещё и, мягко говоря, не панацея от всех болезней. Какой индекс создать? Неизвестно. Особенно в случае временной таблицы. Какой толк от explain на ней? Для постоянной я воспользовался db2advis и ожидал бы от него таких вариантов: 1) индекс не нужен 2) (Object, Type) или (Type, Object) (это не равнозначно, кстати) 3) (Object, Type, FinYear, FinMonth) или (Type, Object, FinYear, FinMonth) хотя 4) (FinYear, FinMonth) нельзя совсем сбрасывать со счёта. Дело в том, что, в зависимости от данных, наивыгоднейшим может оказаться любой из этих вариантов, хотя я и голосовал бы за 1) или 3). Для временной таблицы можно создать её постоянный аналог, наполнить данными, собрать статистику и спросить db2advis, что он об этом думает. Это наилучшее, что я могу предложить, но по ряду причин оно может не помочь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2010, 22:02 |
|
||
|
Как лучше два индекса или один?
|
|||
|---|---|---|---|
|
#18+
Victor Metelitsa, Без индексов explain выдает total_cost 13000, а с индексами 1800. Думаю все же от индексов есть толк, а вот за совет поиграться (Object, Type) или (Type, Object) - спасибо, попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2010, 17:17 |
|
||
|
Как лучше два индекса или один?
|
|||
|---|---|---|---|
|
#18+
Вы статистику-то (по заполненной таблице) собирали? Без этого цифирки в explain лишены особого смысла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2010, 14:49 |
|
||
|
Как лучше два индекса или один?
|
|||
|---|---|---|---|
|
#18+
Victor Metelitsa, Нет, не собирал. Почему то считал, что если сначала загрузить все данные, а потом построить индекс, то статистика будет приемлемой. Оказалось что я ошибался. Провел эксперимент: 1) создал темп-тейбл 2) залил данные 3) сделал эксплейн - выдало 118 попугаев 4) создал индекс, сделал эксплейн выдало 33 попугая 5) сделал ранстатс, сделал эксплейн выдало 22 попугая но скорость работы программы для 4) и 5) пока разницы не заметил. Разница заметная есть для ситуации без и с индексом. с индексами быстрее. кстати вопросик еще один мучает меня. если я очень интенсивно юзаю темп-тейблы (импорт данных из dbf - заливаю в темпы, а потом селекчу/джойню как мне надо, используя все навороты дбтушного sql-я) - правильно ли я сделал создав отдельный достаточно большой буфер (80000 4k страниц) буфер пулл и назначил его темповому тейблспейсу? Может стоит еще с размером страницы поиграться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2010, 18:25 |
|
||
|
Как лучше два индекса или один?
|
|||
|---|---|---|---|
|
#18+
Лично я люблю пользоваться Index Advisor, и потому для batch-процессов пользуюсь обычными таблицами ( drop index...; alter table ... activate not logged initially with empty table; import ...; create index ...; commit; runstats ... with distribution and detailed indexes all; ... ). Полезность нескольких буферных пулов вместо одного зависит от происходящих в системе процессов. В самом деле, возьмём крайний случай: предположим, днём происходит "обычная" активность, мало затрагивающая temporary, а ночью выполняется ваш скрипт, который (тоже предположим) работает в основном с temporary. Тут два буферпула - пустая растрата оперативной памяти. Разве что, размеры их регулировать. Но с одним проще. С другой стороны, если параллельно с вашим скриптом каким-то другим процессом частенько запускается какое-нибудь длительное сканирование больших таблиц, таких, что в буферный пул они не влазят, таким большим полносканируемым таблицам лучше быть в табличном пространстве с очень маленьким буферпулом. Ибо в таких случаях, пока у таких таблиц нет шансов влезть в буферный пул целиком, он для них бесполезен, зато их страницы могут вытеснить то, что кешировалось бы с пользой. Поскольку реальная картина обычно более сложна, то и ответ должен быть более сложен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2010, 20:42 |
|
||
|
Как лучше два индекса или один?
|
|||
|---|---|---|---|
|
#18+
Alexey Kuznetsov,можно посмотреть использование буфферного пула (bufferpools) примерно так db2 select BPNAME, NPPAGES, PAGESIZE, NPAGES*PAGESIZE as RAZM from syscat.bufferpools кажется не соврала, результат табличка со значениями ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2010, 19:52 |
|
||
|
|

start [/forum/topic.php?fid=43&gotonew=1&tid=1602756]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
11ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 290ms |
| total: | 444ms |

| 0 / 0 |
