powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
99 сообщений из 99, показаны все 4 страниц
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39326387
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространства?

Имеем БД:
DB2 LUW ver 9.7 fix pack 8 Enterprise x64
на платформе: Win 2008 R2 Enterprise x64
сервер: BC Hx5, CPU: E7-4870, RAM: 384GB
СХД: Storwize V7000.
Суть проблемы:
Есть таблица с количеством строк порядка 5 млд. записей и небольшой средней длинной записи . В табличном пространстве только эта таблица. На таблице 1 кластеризованный индекс, который используется когда выборка данных небольшая и не используется когда итоговая выборка составляет > 300 тыс. строк. Это все нормально и оптимизатор отрабатывает корректно, поскольку таблица кластеризована именно по этой большой выборке и коэффициент селективности небольшой.
Проблема заключается в том, что когда идет большая выборка данных мы видим, что суммарная нагрузка на СХД очень мала (примерно 25 -35 MB/s), причем скорость выборки не зависит ни от нагрузки на БД не от нагрузки на СХД. Причем скорость выборки не зависит даже от мощности СХД, наши тесты на DS5100 и на Storwize v7000 показывают одинаковые результаты. На обоих СХД используется 1 большой массив из RAID 10. Попытка разнести табличное пространство на 10 логических дисков (в пределах 1 массива на СХД) не принесла результата, мы имеем все ту же скорость ~30 MB/s., пропорционально распределенную по контейнерам. На комбинированных тестах мы получали на Storwize v7000 суммарную скорость ~ 2 GB/s. Изменение параметров: intra_parallel & querydegree результатов не дали, не можем понять где узкое место. DB2ADVIS говорит, что так и должно быть и изменений не требуется.

Вопрос. Почему мы не можем получить сравнимые скорости (или хотя бы улучшение) при выборке данных? На что стоит посмотреть, на какие параметры БД или может СХД?

Спасибо.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39326465
sysdummy1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
use-se
Вопрос. Почему мы не можем получить сравнимые скорости (или хотя бы улучшение) при выборке данных? На что стоит посмотреть, на какие параметры БД или может СХД?

Спасибо.

Многое зависит от запроса.

Например :

db2 "select * from db2inst5.r_lineitem_compr" > /dev/null

читает с диска 4 MB/s

db2 "select count(*) from db2inst5.r_lineitem_compr" > /dev/null

читает с диска 800 MB/c

Если у вас запрос подобный первому, то много из него вы не выжмете.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39326493
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне стоило указать пример запроса.

small_tab(c1 bigint), row_count=6 000 000
big_tab(c1..c7), row_count=5 000 000 000
result request count ~ 280 000 000

select c1, c2, c3, c4 from big_tab b, small_tab s where b.c1=s.c1 with ur;

>>"Если у вас запрос подобный первому, то много из него вы не выжмете"
Это из личного опыта или есть какие либо причины, ограничения или еще что то?
Если не трудно, поделитесь, пожалуйста.

Кстати, если начать длинную транзакцию, а потом прервать ее, то можно получить скорость записи
до 300 МБ/с на этом же TBSP.

Спасибо.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39326668
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
use-se,

А какая скорость работы с диском у, скажем:

select count(c1), count(c2), count(c3), count(c4) from big_tab b, small_tab s where b.c1=s.c1 with ur;

?
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39326681
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ограничения находятся в физике винчестеров. Основное время уходит на подвод головки, само же считывание очень быстро. Поэтому крупноблочное чтение очень быстрое, мелкоблочное чтение очень медленное (рахница разительна!), причём даже когда загрузка винчестеров в обоих случаях 100%. Для системы хранения данных прибавляется передача по сети, у которой подобная же проблема "крупноблочная передача vs мелкоблочная передача". Поэтому ограничиваться рассмотрением голых мегабайтов в секунду - ошибка. Надо рассматривать и другие параметры, вроде величины считываемого блока и загрузки винчестеров. Ещё довольно полезно анализировать планы, понимать, что стоит за цифрами "таймеронов" (я пришёл к выводу, что это расчётные миллисекунды), в каком случае чтение будет крупноблочным и в каком мелкоблочном и как это видно в плане. К сожалению, для DB2 я литературы на эту тему не знаю, читайте Jonathan Lewis. Cost based Oracle Fundamentals.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39326727
dbtwoshnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"Мелкоблочность" чтения зависит от фрагментации на дисках, а это как мне кажется зависит от:

1) фрагментации виртуального диска или блока, например lun
2) фрагментации базы, что решается через reorg, по сути ночной reorg - это борьба за экономию на дневных IOPS-ах


При максимальной фрагментации получается почти случайное чтение, современные диски выдают около 200 random IOPS .
При размере блока=4K скорость получается 200*4K=800K/секунду=примерно 1 мбайт/секунду на каждый диск.

Если у вас качественный RAID10 (например ZFS), то предельная скорость random операций увеличивается до кол-ва дисков * 1мбайт/секунду.

Например, для 4 дисков - это около 4Мбайт/секунду.

Если ваши 30Мбайт в секунду - это для рандомного чтения, то это очень хороший показатель достижимый при количестве дисков около 20-30 шт.

Чисто рандомного чтения конечно не бывает:
1) Не так велика фрагментация на диске, особенно для ZFS, где все записи (даже перезаписи старых данных) последовательные в пределах доступного нефрагментированого пространства. По сути в ZFS не бывает перезаписи, походит на архивные логи базы, всегда на новом незанятом месте.
2) Обычно в хранилище несколько кэшей различного уровня

Например, при dd чтении с zvol с базой можно наблюдать флуктацию скорости от 3 до 30 МБ/сек.
3 - это когда совсем рандом
30 - это когда данные поступают из ARC, L2ARC либо просто последовательно вычитываются с дисков при удачном стечении обстоятельств, когда они записывались ранее

Сомнительно, что передача данных по сети на сколько-нибудь заметно замедляет работу СУБД, ethernet пофик фрагментация данных на диске, если только небольшой лаг, но ведь и другие интерфейсы типа SAS не мгновенные.
При скоростях около 30Мбайт/секунду, навряд ли сеть может как то повлиять на скорость.

Как можно улучшить ситуацию?
Наверно, с помощью nvram PCI SSD типа Intel DC 3700.
В случае ZFS можно не все данные размещать на SSD, а например только L2ARC кэш второго уровня, получается экономнее, но остается вероятность время от времени прямого рандомного чтения с HDD, что значительно медленнее, чем c SSD.

Еще SSD очень помогает улучшить производительность при update/insert/delete, если на них разместить активные логи.

Сколько IOPS у вас показывает хранилище при долгом чтении?
Сколько дисков в хранилище?
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39326747
dbtwoshnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
еще наверно можно раскидать т. пространства по разным хранилищам
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39326749
dbtwoshnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dbtwoshnickНапример, при dd чтении с zvol с базой можно наблюдать флуктацию скорости от 3 до 30 МБ/сек.
3 - это когда совсем рандом
30 - это когда данные поступают из ARC, L2ARC либо просто последовательно вычитываются с дисков при удачном стечении обстоятельств, когда они записывались ранее


это всего лишь для 4! дисков в ZFS 2x2 как RAID10
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39326774
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbtwoshnick"Мелкоблочность" чтения зависит от фрагментации на дисках

Нет, я про случай, когда файл табличного пространства непрерывен. Тем не менее, часть запросов крупноблочные, а часть мелкоблочные. Крупноблочные - фуллсканы, а мелкоблочные - поиск по индексу. Поэтому, например, могут быть очень выгодны MDC.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39326777
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaТем не менее, часть запросов крупноблочные, а часть мелкоблочные.
Точнее, одни access path крупноблочные, другие мелкоблочные. У DB2 в плане запроса у крупноблочных пунктов может быть что-то вроде "prefetch eligible".
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39326798
dbtwoshnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor Metelitsadbtwoshnick"Мелкоблочность" чтения зависит от фрагментации на дисках

Нет, я про случай, когда файл табличного пространства непрерывен. Тем не менее, часть запросов крупноблочные, а часть мелкоблочные. Крупноблочные - фуллсканы, а мелкоблочные - поиск по индексу. Поэтому, например, могут быть очень выгодны MDC.

а разве бывают непрерывные файлы в т.ч. TS с точки зрения HDD если база не только что залита из бэкапа, а долгое время накапливала данные раскидывая их случайным образом на всех уровнях абстракции данных? это ведь не свежескопированный на пустой винт большой ISO, который читается и пишется последовательно со скоростью 100 метров в сек и более

допустим, после реорганизации файл TS может стать более непрерывен с точки зрения файловой системы, которую видит DB2

но ведь еще есть файловая система, обслуживающая lun

как мне кажется накладываются все факторы:
1) фрагментация хранилища под lun, если небыло полного предварительного thick eager provisioning
2) фрагментация TS поверх lun
3) случайный характер обращений DB2 при мелкоблочныx операциях

все это работает в комплексе и в конечном итоге может как увеличивать количество IOPs, так, наверно, иногда и уменьшать если повезет случайным блокам с точки зрения DB2 (или файловой системы верхнего уровня) физически оказаться рядом
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39326837
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinsteinuse-se,

А какая скорость работы с диском у, скажем:

select count(c1), count(c2), count(c3), count(c4) from big_tab b, small_tab s where b.c1=s.c1 with ur;

?

Скорость упала до 10 мб/с (причем стартовал процесс с 1 мб/с потом дорос до 10 мб/с, сейчас упал до 5мб/с).
В принципе все объяснимо, поскольку чтение идет сейчас из индексного TS.
Можно, конечно, пересоздать индекс с добавлением (include) полей и тогда посмотреть, может это решит проблему?

dbtwoshnick ,
Спасибо за подробное описание.
У меня нет точных данных по lun и пр., но к примеру на DS5100 было 44 диска RAID10, на Storwize их больше +
там SDD как то включено. Насчет последовательности чтения, попробую перезалить таблицу, через экспорт.

Mark Barinstein ,
пока писал ответ скорость изменилась, сейчас скачет 7-30 мб/с

Интересно насколько актуальным является параметр db2_parallel_io=*.45 (сейчас стоит) для СХД вроде Storwize, мне сказали,
что не актуально, это так?
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39326838
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предположим, в табличном пространстве размер блока 32K, а размер экстента 32 блока - то есть 1M. Мелкоблочное чтение как раз про блоки, крупноблочное про экстенты (хотя есть нюансы). Если файловая система будет выделять место под файл блоками размером 1М (или кратными 1М), то это как раз то, что нужно.

Ну, и поддержку raw devices у DB2, кажется, ещё не совсем зарезали.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39326855
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
use-seСкорость упала до 10 мб/с (причем стартовал процесс с 1 мб/с потом дорос до 10 мб/с, сейчас упал до 5мб/с).
В принципе все объяснимо, поскольку чтение идет сейчас из индексного TS.
Можно, конечно, пересоздать индекс с добавлением (include) полей и тогда посмотреть, может это решит проблему?

Include, скорее всего ускорит. Но если вы сумеете удачно разбить таблицу на секции (partitions, multidimentional clusters - MDC), так, чтобы считать небольшое количество секций не по индексу, а fullscan'ом по этим секциям, это будет ещё лучше.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39326872
sysdymmy1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
use-seМне стоило указать пример запроса.

small_tab(c1 bigint), row_count=6 000 000
big_tab(c1..c7), row_count=5 000 000 000
result request count ~ 280 000 000

select c1, c2, c3, c4 from big_tab b, small_tab s where b.c1=s.c1 with ur;


Если вы просто куда-то фетчите все эти 280M строк, то тогда неудивительно
Это какие-то выгрузки ? Ну не юзеру же в репорте понадобилось столько строк ...

use-se>>"Если у вас запрос подобный первому, то много из него вы не выжмете"
Это из личного опыта или есть какие либо причины, ограничения или еще что то?
У меня примерно так же работают всякие ETL-екстракторы, тянущие десятки миллионов строк из таблиц-источников. Производительность одного процесса примерно такая же. Но их идет несколько параллельно.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39326898
dbtwoshnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor MetelitsaЕсли файловая система будет выделять место под файл блоками размером 1М (или кратными 1М), то это как раз то, что нужно.

а на что влияет размер блока хранилища? выравнивание при фрагментации?
и в чем он выражается размер блока хранилища (не измеряется)?

размер блока hdd то ведь не поменять, максимальное кол-во IOPS на 1 hdd тоже фиксированное

возможно, было бы хорошо когда размер блока хранилища был бы кратен с количеством зеркал (страйпов vdevs), помноженным на размер блока на каждом зеркале т.е. на каждом HDD, если это RAID10?

тогда каждый блок хранилища был бы представлен одинаковым количеством блоков на каждом hdd, хотя хранилища все более интеллектуальные и трудно точно предугадать, как они будут распределять по дискам
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39326899
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor MetelitsaПредположим, в табличном пространстве размер блока 32K, а размер экстента 32 блока - то есть 1M. Мелкоблочное чтение как раз про блоки, крупноблочное про экстенты (хотя есть нюансы). Если файловая система будет выделять место под файл блоками размером 1М (или кратными 1М), то это как раз то, что нужно.

Ну, и поддержку raw devices у DB2, кажется, ещё не совсем зарезали.
TS:
Page size = 4k
Extent size = 32
Prefetch size = -1

Victor Metelitsause-seСкорость упала до 10 мб/с (причем стартовал процесс с 1 мб/с потом дорос до 10 мб/с, сейчас упал до 5мб/с).
В принципе все объяснимо, поскольку чтение идет сейчас из индексного TS.
Можно, конечно, пересоздать индекс с добавлением (include) полей и тогда посмотреть, может это решит проблему?

Include, скорее всего ускорит. Но если вы сумеете удачно разбить таблицу на секции (partitions, multidimentional clusters - MDC), так, чтобы считать небольшое количество секций не по индексу, а fullscan'ом по этим секциям, это будет ещё лучше.
попробую
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39326912
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sysdymmy1use-seМне стоило указать пример запроса.

small_tab(c1 bigint), row_count=6 000 000
big_tab(c1..c7), row_count=5 000 000 000
result request count ~ 280 000 000

select c1, c2, c3, c4 from big_tab b, small_tab s where b.c1=s.c1 with ur;


Если вы просто куда-то фетчите все эти 280M строк, то тогда неудивительно
Это какие-то выгрузки ? Ну не юзеру же в репорте понадобилось столько строк ...

use-se>>"Если у вас запрос подобный первому, то много из него вы не выжмете"
Это из личного опыта или есть какие либо причины, ограничения или еще что то?
У меня примерно так же работают всякие ETL-екстракторы, тянущие десятки миллионов строк из таблиц-источников. Производительность одного процесса примерно такая же. Но их идет несколько параллельно.
Да это ETL, вида:
db2 +c alter table res activate not logged initially with empty table
db2 insert into res select c1, c2, c3, c4 from big_tab b, small_tab s where b.c1=s.c1 with ur
Проблема в том, что процесс выборки:
1. достаточно долгий (2-6 часов)
2. при наличии длинной транзакции на БД растут логи
3. БД в большей степени OLTP
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39326962
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbtwoshnickVictor MetelitsaЕсли файловая система будет выделять место под файл блоками размером 1М (или кратными 1М), то это как раз то, что нужно.

а на что влияет размер блока хранилища? выравнивание при фрагментации?
и в чем он выражается размер блока хранилища (не измеряется)?

размер блока hdd то ведь не поменять, максимальное кол-во IOPS на 1 hdd тоже фиксированное

возможно, было бы хорошо когда размер блока хранилища был бы кратен с количеством зеркал (страйпов vdevs), помноженным на размер блока на каждом зеркале т.е. на каждом HDD, если это RAID10?

тогда каждый блок хранилища был бы представлен одинаковым количеством блоков на каждом hdd, хотя хранилища все более интеллектуальные и трудно точно предугадать, как они будут распределять по дискам

время io = время на позиционирование головки (X1) + время на считывание/запись (X2)
1 мег (при размере блока DB2 = 32K и extent size = 32) можно прочитать за 32 * X1 + 32 * X2 или за 1 * X1 + 32 * X2.
Учитывая, что X1 очень велик по сравнению с X2, основной вклад в сравнении вносят именно 32 * X1 или 1 * X1.
Количество iops у винчестеров (и не только у них) всё-таки разные для разного размера, и потому, что X2 не 0, и потому, что могут вступить какие-то другие ограничивающие факторы.
Размер блока HDD имеет к этому весьма косвенное отношение. К примеру, выравнивание выбрано неудачно, по-старинке с 63-го сектора, а винчестер новый с блоком 4К, но современные операционные системы по умалчанию делают смещение 2048.

Желательно, чтобы чтение одного блока DB2 (4К ... 32К), будучи транслированным через разные уровни (собственно DB2, файловая система ОС, система на хранилище), приводило к одному чтению с одного HDD, и чтобы одно чтение экстента DB2 приводило к одному чтению с одного HDD, к этому надо стремиться, изучать и настраивать все уровни. Кроме того, чтение одного экстента (что приблизительно равно тому многоблочному чтению, о котором говорю) ещё более выгодно по сравнению с одноблочным, если разбиение неудачно. Например, случай выше со смещением 63 (512-байтовых логических блоков) на винчестере с 4К физических блоков, четырёхкилобайтовый блок будет считан за два физических чтения, но и экстент тоже).
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39326973
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot use-se]sysdymmy1пропущено...
Да это ETL, вида:
db2 +c alter table res activate not logged initially with empty table
db2 insert into res select c1, c2, c3, c4 from big_tab b, small_tab s where b.c1=s.c1 with ur
Проблема в том, что процесс выборки:
1. достаточно долгий (2-6 часов)
2. при наличии длинной транзакции на БД растут логи
3. БД в большей степени OLTP

Вместо insert может быть удобнее load from cursor - едва ли быстрее, но хотя бы таблицу не надо пересоздавать, если что-то сломается по дороге. (Хотя при восстановлении из бекапа всё равно придётся. Жаль, что никто не предложит ibm-ерам на такие случаи сделать что-нибудь вроде alter table ... validate with empty table - пусть содержимое потерялось, но пересоздавать таблицы не доставляет удовольствия).

А сам запрос выглядит безобидным, предполагая, что большая таблица фуллсканируется, а маленькая таблица вошла в буферный пул.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39326997
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Victor Metelitsa]use-seпропущено...


Вместо insert может быть удобнее load from cursor - едва ли быстрее, но хотя бы таблицу не надо пересоздавать, если что-то сломается по дороге. (Хотя при восстановлении из бекапа всё равно придётся. Жаль, что никто не предложит ibm-ерам на такие случаи сделать что-нибудь вроде alter table ... validate with empty table - пусть содержимое потерялось, но пересоздавать таблицы не доставляет удовольствия).

А сам запрос выглядит безобидным, предполагая, что большая таблица фуллсканируется, а маленькая таблица вошла в буферный пул.
LOAD для меня еще большая проблема. Вне зависимости от параметров иногда намертво подвешивает всю БД.
Воспроизвел на тестовом сервере эту проблему и несколько раз запускал db2fods c hang парамтром, но увы умирает совсем,
но это другая песня.
Кстати export по сравнению с insert, прироста скорости не дает, да и реализация от разработчика именно ткая как написал выше.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39327064
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
use-seпока писал ответ скорость изменилась, сейчас скачет 7-30 мб/с

Интересно насколько актуальным является параметр db2_parallel_io=*.45 (сейчас стоит) для СХД вроде Storwize, мне сказали,
что не актуально, это так?
Надо план запроса смотреть - использование индексов тут, скорее всего, будет очень неэффективным.
Большую таблицу надо бы попробовать организовать по MDC (с1).
db2_parallel_io=* (т.е. 6) для Storwize в IBM PDOA. У вас очень большое значение.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39327145
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, с планом непонятно. Я автоматически думал, что большая ведущая, а маленькая ведомая, и для каждой b.c1 существует s.c1.
Код: sql
1.
2.
3.
4.
select c1, c2, c3, c4 -- кстати, здесь некорректно без префикса
from 
  big_tab b 
  join small_tab s on b.c1=s.c1


в таком случае вообще напрашивается хеш-джойн, а индексы не нужны. Маленькая таблица закачивается в память, затем большая полностью сканируется и по хешу c1 в памяти ищутся значения закешированной маленькой таблицей.

Забавно, что для одного и того же исполнения
* IBM рисует в explain'е плана маленькую таблицу раньше (левее) большой,
* а Oracle позже (ниже).
IBM, видимо, исходит из логики, что маленькая таблица скачивается первой, а Oracle считает более важным, что большая таблица полностью сканируется, и для каждой b ищется s, и неважно, закеширована ли s.

Важно, конечно, чтобы эта маленькая таблица была достаточно мала.

А вот когда только для маленького процента b.c1 существует s.c1, логично пройти по s.c1 и для каждой записи там искать в b1 соответствия. Тогда надо как минимум индекс, а MDC по c1 должно быть оптимальным.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39327154
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
DECLARE myCurs CURSOR 
-- DATABASE $db1 USER $user1 USING $pwd1
FOR запрос
@

LOAD client FROM myCurs
OF cursor
INSERT INTO  таблица
-- 	STATISTICS USE PROFILE 
NONRECOVERABLE 
@



Без NONRECOVERABLE видал веселуху - табличному пространству позарез хочется забекапиться после LOAD'а. Но с NONRECOVERABLE всё всегда ОК.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39327225
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinsteinuse-seпока писал ответ скорость изменилась, сейчас скачет 7-30 мб/с

Интересно насколько актуальным является параметр db2_parallel_io=*.45 (сейчас стоит) для СХД вроде Storwize, мне сказали,
что не актуально, это так?
Надо план запроса смотреть - использование индексов тут, скорее всего, будет очень неэффективным.
Большую таблицу надо бы попробовать организовать по MDC (с1).
db2_parallel_io=* (т.е. 6) для Storwize в IBM PDOA. У вас очень большое значение.
План запроса напрямую зависит от количества выбираемых данных.
Основное назначение БД OLTP, т.е. для нашей большой таблицы на 1 запрос выбирается от 20 до 1000
записей, время выборки меньше 1 секунды (доли секунды), здесь используется индекс.
При большой выборке, как было указано вначале, индекс не используется, а если и используется
(на граничных условиях) то приводит, как правило, к увеличению общего времени выборки.

Таблица имеет уникальный кластерный индекс по 3 первым полям (bigint,date,bigint), соответственно.
Здесь немного статистики.
Код: 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.
F1: 100 * OVERFLOW / CARD < 5
F2: 100 * (Effective Space Utilization of Data Pages) > 70
F3: 100 * (Required Pages / Total Pages) > 80
 
SCHEMA.NAME                     CARD     OV     NP     FP ACTBLK    TSIZE  F1  F2  F3 REORG
----------------------------------------------------------------------------------------
Table: big_tab
                             5,2e+09      0  9e+07  9e+07      - 3,46e+11   0  99  99 ---
----------------------------------------------------------------------------------------
 
Index statistics:
 
F4: CLUSTERRATIO or normalized CLUSTERFACTOR > 80
F5: 100 * (Space used on leaf pages / Space available on non-empty leaf pages) > MIN(50, (100 - PCTFREE))
F6: (100 - PCTFREE) * (Amount of space available in an index with one less level / Amount of space required for all keys) < 100
F7: 100 * (Number of pseudo-deleted RIDs / Total number of RIDs) < 20
F8: 100 * (Number of pseudo-empty leaf pages / Total number of leaf pages) < 20
 
SCHEMA.NAME                 INDCARD  LEAF ELEAF LVLS  NDEL    KEYS LEAF_RECSIZE NLEAF_RECSIZE LEAF_PAGE_OVERHEAD NLEAF_PAGE_OVERHEAD  PCT_PAGES_SAVED  F4  F5  F6  F7  F8 REORG
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Table: big_tab
Index: big_tab_PK
                            5,2e+09 6e+07 55765    5 7e+07 5,2e+09           20            20                370                 370                0  69  73   2   1   0 *----
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
В момент первой загрузки/реорганизации по кластерному индексу clasterfacktor конечно же был выше, но и сейчас выборка
большого количества данных из таблице не намного хуже (по времени). Главная проблема, что нет прироста скорости на новом железе. Первичная реорганизация была offline. Конечно же хотелось бы реорганизовать табличку снова, но....
На тестовом сервере (с этой же БД) с имитацией нагрузки я пытался сделать online реорганизацию, но после 5 дней непрерывной реорганизации прервал ее.
Относительно маленькой таблицы, то она каждый день содержит новые данные и после каждого ETL чистится.
Я не вижу, что с ней можно сделать, там всего 1 поле (bigint).

Относительно:
>>Большую таблицу надо бы попробовать организовать по MDC (с1).
буду пробовать, но немного страшновато по следующим причинам:
1. Уникальность первичного ключа - это 3 поля, следовательность размерность будет 3? насколько вырастет потребность в дисковом пространстве?
2. пока не имею практики использования (почитать, конечно же почитаю и попробую), но насколько сложны
эти MDC в обслуживании?
3. я так понял стоит попробовать именно
авторORGANIZE BY -- Groups rows with similar values on multiple dimensions in the same table extent. This concept is known as multidimensional clustering (MDC).

а не
авторPARTITION BY -- Groups rows with similar values of a single dimension in the same data partition. This concept is known as table partitioning.


Mark Barinsteindb2_parallel_io=* (т.е. 6) для Storwize в IBM PDOA. У вас очень большое значение.
здесь немного не понял, вариант
а)db2_parallel_io=*
или
б)db2_parallel_io=*.6

Буду пробовать, тестировать - это займет время.
У меня будет возможность проверить эту выборку на IBM FlashSystem, посмотрим, что там будет.

Большое спасибо всем за помощь, всем удачных выходных.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39327241
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor Metelitsa
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
DECLARE myCurs CURSOR 
-- DATABASE $db1 USER $user1 USING $pwd1
FOR запрос
@

LOAD client FROM myCurs
OF cursor
INSERT INTO  таблица
-- 	STATISTICS USE PROFILE 
NONRECOVERABLE 
@



Без NONRECOVERABLE видал веселуху - табличному пространству позарез хочется забекапиться после LOAD'а. Но с NONRECOVERABLE всё всегда ОК.
Это да, на тех БД, что я создавал тоже не было проблем, но вот на продуктивной БД и ее копиях
проблемы периодически проявлятся.
Я вначале думал, что это результат множественной миграции БД,
начиная с 7 версии, и пересоздав TS, проблема исчезнет, но она не исчезла.
И с nonrecoverable и с copy yes периодически БД подвисает на 0.5-2 часа, потом нормально грузит.
Что интересно, даже если неправильно указать таблицу, то все равно вначале повиснет, а потом выдаст ошибку.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39327262
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
use-seMark Barinsteindb2_parallel_io=* (т.е. 6) для Storwize в IBM PDOA. У вас очень большое значение.
здесь немного не понял, вариант
а)db2_parallel_io=*
или
б)db2_parallel_io=*.6Если это не ошибка у вас, то такое значение через точку вообще неправильно. Надо через двоеточие.

DB2_PARALLEL_IO=*
DB2_PARALLEL_IO=*:6
http://www.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.regvars.doc/doc/r0005658.html
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39327388
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
use-seИ с nonrecoverable и с copy yes периодически БД подвисает на 0.5-2 часа, потом нормально грузит.
Что интересно, даже если неправильно указать таблицу, то все равно вначале повиснет, а потом выдаст ошибку.
Онлайн-бекап одновременно с этим не делался?
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39327401
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
use-se...
При большой выборке, как было указано вначале, индекс не используется, а если и используется
(на граничных условиях) то приводит, как правило, к увеличению общего времени выборки.

Таблица имеет уникальный кластерный индекс по 3 первым полям (bigint,date,bigint), соответственно.
Здесь немного статистики.
...

Практически бесполезна, когда плана и многого другого важного мы так и не увидели.
Если ведущая таблица "большая" и фуллскан идёт по ней, кластерный индекс не особо интересен.

use-seОтносительно маленькой таблицы, то она каждый день содержит новые данные и после каждого ETL чистится.
Я не вижу, что с ней можно сделать, там всего 1 поле (bigint).

Относительно:
>>Большую таблицу надо бы попробовать организовать по MDC (с1).
буду пробовать, но немного страшновато по следующим причинам:
1. Уникальность первичного ключа - это 3 поля, следовательность размерность будет 3? насколько вырастет потребность в дисковом пространстве?

Положим
Код: sql
1.
2.
3.
select b.c1, b.c2, b.c3, b.c4 
from big_tab b, small_tab s 
where b.c1=s.c1


и b.c1, b.c2, b.c3 - ключ на b.
Разумеется, MDC по b.c1, b.c2, b.c3 - тяжёлая ошибка, ибо каждая запись займёт отдельный экстент.
Смысл может иметь только MDC по меньшему числу колонок, и, скорее всего, только по c1.
И то польза будет не обязательно. Надо, чтобы
1) для каждого уникального c1 было "много" записей в b
Код: sql
1.
2.
select count(*) x1, count(distinct b.c1) x2
from big_tab b


т.е. чтобы отношение x1/x2 было "большим"; чем оно больше, тем меньше пространства уйдёт впустую.

2) чтобы маленькая таблица была "ведущей" в запросе, a la
для каждой строки small_tab s
..
искать строки в big_tab b по условию b.c1=s.c1
..
конец цикла

3) и чтобы в результате только часть строк big_tab требовалась, а не все они; чтобы
Код: sql
1.
2.
select count(*) x1
from big_tab b

и
Код: sql
1.
2.
3.
4.
5.
6.
7.
select count(*) y1
from big_tab b 
where exists(
  select *
  from small_tab s   
  where b.c1=s.c1
)


давали "серьёзно" различающийся результат
2. пока не имею практики использования (почитать, конечно же почитаю и попробую), но насколько сложны
эти MDC в обслуживании?

Вроде бы ничего сложного. Впрочем, и возможностей маловато (по сравнению с ораклячьим табличным партишионированием).

3. я так понял стоит попробовать именно
авторORGANIZE BY -- Groups rows with similar values on multiple dimensions in the same table extent. This concept is known as multidimensional clustering (MDC).

а не
авторPARTITION BY -- Groups rows with similar values of a single dimension in the same data partition. This concept is known as table partitioning.



Здесь MDC напрашивается. Но у Оракля, например, MDC нет, но ораклисты обходятся табличным партишионированием. Смысл же простой - надо побить таблицу на секции, чтобы фуллсканить не всю таблицу, а только некоторые секции, и так, чтобы оптимизатор понял выгоду. Хотя в данной задаче табличное партишионирование довольно неудобно, и я не уверен вообще, что DB2-шное табличное партишионирование справится.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39328114
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark BarinsteinЕсли это не ошибка у вас, то такое значение через точку вообще неправильно. Надо через двоеточие.

По факту стоит не точка, а запятая, что не меняет сути - все равно ошибка, поправил
Спасибо.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39328132
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor MetelitsaОнлайн-бекап одновременно с этим не делался?
нет не делался

Victor MetelitsaПрактически бесполезна, когда плана и многого другого важного мы так и не увидели.
Если ведущая таблица "большая" и фуллскан идёт по ней, кластерный индекс не особо интересен.

Прошу прощения, я должен был с самого начала приложить планы запросов, но подумал, что и так все понятно.
Вот планы, если интересно:
D:\scripts>db2expln -d russiadb -o d:\tmp\rows_all.txt -g -q "SELECT h.c1_id, h.c2_HISTORY_DATE, h.PAY_STATUS FROM sh1.big_tab h, sh2.small_tab l WHERE h.c1_id = l.c1_id WITH UR"

DB2 Universal Database Version 9.7, 5622-044 (c) Copyright IBM Corp. 1991, 2009
Licensed Material - Program Property of IBM
IBM DB2 Universal Database SQL and XQUERY Explain Tool

******************** DYNAMIC ***************************************

==================== STATEMENT ==========================================

Isolation Level = Cursor Stability
Blocking = Block Unambiguous Cursors
Query Optimization Class = 5

Partition Parallel = No
Intra-Partition Parallel = No

SQL Path = "SYSIBM", "SYSFUN", "SYSPROC", "SYSIBMADM",
"DB2ADMIN"


Statement:

SELECT h.c1_id, h.c2_HISTORY_DATE, h.PAY_STATUS
FROM big_tab h, small_tab l
WHERE h.c1_id =l.c1_id
WITH UR

Statement Isolation Level = Uncommitted Read

Section Code Page = 1251

Estimated Cost = 236238336,000000
Estimated Cardinality = 169059488,000000

Access Table Name = big_tab ID = 8,4
| #Columns = 3
| May participate in Scan Sharing structures
| Scan may start anywhere and wrap, for completion
| Scan can be throttled in scan sharing management
| Relation Scan
| | Prefetch: Eligible
| Isolation Level: Uncommitted Read
| Lock Intents
| | Table: Intent None
| | Row : None
Nested Loop Join
| Access Table Name = small_tab ID = 40,15
| | Index Scan: Name = small_tab_INDEX ID = 1
| | | Regular Index (Not Clustered)
| | | Index Columns:
| | | | 1: c1_id (Ascending)
| | #Columns = 0
| | Single Record
| | Fully Qualified Unique Key
| | #Key Columns = 1
| | | Start Key: Inclusive Value
| | | | | 1: ?
| | | Stop Key: Inclusive Value
| | | | | 1: ?
| | Index-Only Access
| | Index Prefetch: None
| | Isolation Level: Uncommitted Read
| | Lock Intents
| | | Table: Intent None
| | | Row : None
Return Data to Application
| #Columns = 3

End of section


Optimizer Plan:

Rows
Operator
(ID)
Cost

1,69059e+008
n/a
RETURN
( 1)
2,36238e+008
|
1,69059e+008
n/a
NLJOIN
( 2)
2,36238e+008
/ \---\
5,24234e+009 *
n/a |
TBSCAN 6,47055e+006
( 3) Index:
1,56039e+008 sh2
| small_tab_INDEX
5,24234e+009
n/a
Table:
sh1
big_tab

----------------------------------------------------

D:\scripts>db2expln -d russiadb -o d:\tmp\rows_10only -g -q "SELECT c1_id, c2_HISTORY_DATE, PAY_STATUS FROM big_tab WHERE c1_id in (select c1_id from small_tab fetch first 10 rows only) WITH UR"

DB2 Universal Database Version 9.7, 5622-044 (c) Copyright IBM Corp. 1991, 2009
Licensed Material - Program Property of IBM
IBM DB2 Universal Database SQL and XQUERY Explain Tool

******************** DYNAMIC ***************************************

==================== STATEMENT ==========================================

Isolation Level = Cursor Stability
Blocking = Block Unambiguous Cursors
Query Optimization Class = 5

Partition Parallel = No
Intra-Partition Parallel = No

SQL Path = "SYSIBM", "SYSFUN", "SYSPROC", "SYSIBMADM",
"DB2ADMIN"


Statement:

SELECT c1_id, c2_HISTORY_DATE, PAY_STATUS
FROM big_tab
WHERE c1_id in
(select c1_id
from small_tab
fetch first 10 rows only)
WITH UR

Statement Isolation Level = Uncommitted Read

Section Code Page = 1251

Estimated Cost = 972,537354
Estimated Cardinality = 261,275208

Access Table Name = small_tab ID = 40,15
| #Columns = 1
| May participate in Scan Sharing structures
| Scan may start anywhere and wrap, for completion
| Scan can be throttled in scan sharing management
| Relation Scan
| | Prefetch: Eligible
| Isolation Level: Uncommitted Read
| Lock Intents
| | Table: Intent None
| | Row : None
Nested Loop Join
| Piped Inner
| Access Table Name = big_tab ID = 8,4
| | Index Scan: Name = big_tab_PK ID = 1
| | | Regular Index (Clustered)
| | | Index Columns:
| | | | 1: c1_id (Descending)
| | | | 2: c2_HISTORY_DATE (Descending)
| | | | 3: STREAM_ID (Descending)
| | #Columns = 0
| | #Key Columns = 1
| | | Start Key: Inclusive Value
| | | | | 1: ?
| | | Stop Key: Inclusive Value
| | | | | 1: ?
| | Index-Only Access
| | Index Prefetch: None
| | Isolation Level: Uncommitted Read
| | Lock Intents
| | | Table: Intent None
| | | Row : None
| | Sargable Index Predicate(s)
| | | Insert Into Sorted Temp Table ID = t1
| | | | #Columns = 1
| | | | #Sort Key Columns = 1
| | | | | Key 1: (Ascending)
| | | | Sortheap Allocation Parameters:
| | | | | #Rows = 27,000000
| | | | | Row Width = 20
| | | | Piped
| | | | Duplicate Elimination
| Sorted Temp Table Completion ID = t1
| List Prefetch Preparation
| | Access Table Name = big_tab ID = 8,4
| | | #Columns = 3
| | | RID List Fetch Scan
| | | Fetch Using Prefetched List
| | | | Prefetch: 2 Pages
| | | Isolation Level: Uncommitted Read
| | | Lock Intents
| | | | Table: Intent None
| | | | Row : None
| | | Sargable Predicate(s)
| | | | #Predicates = 1
Return Data to Application
| #Columns = 3

End of section


Optimizer Plan:

Rows
Operator
(ID)
Cost

261,275
n/a
RETURN
( 1)
972,537
|
261,275
n/a
NLJOIN
( 2)
972,537
/-/ \-\
10 26,1275
n/a n/a
TBSCAN FETCH
( 3) (--)
38146,2 95,3037
| / \
6,47055e+006 26,1275 5,24234e+009
n/a n/a n/a
Table: RIDSCN Table:
sh2 ( 5) sh1
small_tab 51,4576 big_tab
|
26,1275
n/a
SORT
( 6)
51,4571
|
26,1275
n/a
IXSCAN
( 7)
51,4532
|
5,24234e+009
Index:
sh1
big_tab_PK


Victor MetelitsaПоложим
Код: sql
1.
2.
3.
select b.c1, b.c2, b.c3, b.c4 
from big_tab b, small_tab s 
where b.c1=s.c1


и b.c1, b.c2, b.c3 - ключ на b.
Разумеется, MDC по b.c1, b.c2, b.c3 - тяжёлая ошибка, ибо каждая запись займёт отдельный экстент.
Смысл может иметь только MDC по меньшему числу колонок, и, скорее всего, только по c1.
И то польза будет не обязательно. Надо, чтобы
1) для каждого уникального c1 было "много" записей в b
Код: sql
1.
2.
select count(*) x1, count(distinct b.c1) x2
from big_tab b


т.е. чтобы отношение x1/x2 было "большим"; чем оно больше, тем меньше пространства уйдёт впустую.

Получается, чтобы использовать MDC нам придется отказаться от уникальности первичного ключа и вместо (с1,с2,с3)
использовать индекс по c1. На уровне БД я проблем не виду, а вот со стороны софта придется смотреть.
Victor Metelitsa2) чтобы маленькая таблица была "ведущей" в запросе, a la
для каждой строки small_tab s
..
искать строки в big_tab b по условию b.c1=s.c1
..
конец цикла

Написать процедуру, которая будет по курсору на маленькую таблицу выбирать построчно из большой?
Попробую, хотя что то мне подсказывает, что лучше не будет, но спасибо за совет.
Victor Metelitsa3) и чтобы в результате только часть строк big_tab требовалась, а не все они; чтобы
Код: sql
1.
2.
select count(*) x1
from big_tab b

и
Код: sql
1.
2.
3.
4.
5.
6.
7.
select count(*) y1
from big_tab b 
where exists(
  select *
  from small_tab s   
  where b.c1=s.c1
)


давали "серьёзно" различающийся результат
авторпропустил...
Вроде бы ничего сложного. Впрочем, и возможностей маловато (по сравнению с ораклячьим табличным партишионированием).

Здесь MDC напрашивается. Но у Оракля, например, MDC нет, но ораклисты обходятся табличным партишионированием. Смысл же простой - надо побить таблицу на секции, чтобы фуллсканить не всю таблицу, а только некоторые секции, и так, чтобы оптимизатор понял выгоду. Хотя в данной задаче табличное партишионирование довольно неудобно, и я не уверен вообще, что DB2-шное табличное партишионирование справится.

Большое спасибо за детальное описание и советы
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39328511
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
весело у вас тут. неделя разговоров о высоком, а у него поблочно нестед лупом долбит :D
use-se, просто добейся hash-join.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39328513
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
use-seПолучается, чтобы использовать MDC нам придется отказаться от уникальности первичного ключа и вместо (с1,с2,с3)
использовать индекс по c1. На уровне БД я проблем не виду, а вот со стороны софта придется смотреть.

Если я правильно понимаю то, что вы написали, то вы всё ещё не понимаете, что такое MDC.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39328515
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
use-seНаписать процедуру, которая будет по курсору на маленькую таблицу выбирать построчно из большой?
Попробую, хотя что то мне подсказывает, что лучше не будет, но спасибо за совет.

Ничего подобного я не советовал. Я описывал (в меру своего понимания), как DB2 исполняет запрос. Вообще, вы бы лучше Льюиса почитали. Пусть про Oracle, пусть долго, но очень полезно.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39328516
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot use-se]
Прошу прощения, я должен был с самого начала приложить планы запросов, но подумал, что и так все понятно.
[quot]
Понятно только, что возможно минимум два плана, а на самом деле больше.

И желательно fixed-шрифтом, иначе совсем ничего не понять. Вот так:

Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
D:\scripts>db2expln -d russiadb -o d:\tmp\rows_all.txt -g -q "SELECT h.c1_id, h.c2_HISTORY_DATE, h.PAY_STATUS FROM sh1.big_tab h, sh2.small_tab l WHERE h.c1_id = l.c1_id WITH UR"

DB2 Universal Database Version 9.7, 5622-044 (c) Copyright IBM Corp. 1991, 2009
Licensed Material - Program Property of IBM
IBM DB2 Universal Database SQL and XQUERY Explain Tool

******************** DYNAMIC ***************************************

==================== STATEMENT ==========================================

	Isolation Level          = Cursor Stability
	Blocking                 = Block Unambiguous Cursors
	Query Optimization Class = 5

	Partition Parallel       = No
	Intra-Partition Parallel = No

	SQL Path                 = "SYSIBM", "SYSFUN", "SYSPROC", "SYSIBMADM", 
                                   "DB2ADMIN"


Statement:
  
  SELECT h.c1_id, h.c2_HISTORY_DATE, h.PAY_STATUS 
  FROM big_tab h, small_tab l 
  WHERE h.c1_id =l.c1_id 
  WITH UR

Statement Isolation Level = Uncommitted Read

Section Code Page = 1251

Estimated Cost = 236238336,000000
Estimated Cardinality = 169059488,000000

Access Table Name = big_tab  ID = 8,4
|  #Columns = 3
|  May participate in Scan Sharing structures
|  Scan may start anywhere and wrap, for completion
|  Scan can be throttled in scan sharing management
|  Relation Scan
|  |  Prefetch: Eligible
|  Isolation Level: Uncommitted Read
|  Lock Intents
|  |  Table: Intent None
|  |  Row  : None
Nested Loop Join
|  Access Table Name = small_tab  ID = 40,15
|  |  Index Scan:  Name = small_tab_INDEX  ID = 1
|  |  |  Regular Index (Not Clustered)
|  |  |  Index Columns:
|  |  |  |  1: c1_id (Ascending)
|  |  #Columns = 0
|  |  Single Record
|  |  Fully Qualified Unique Key
|  |  #Key Columns = 1
|  |  |  Start Key: Inclusive Value
|  |  |  |  |  1: ?
|  |  |  Stop Key: Inclusive Value
|  |  |  |  |  1: ?
|  |  Index-Only Access
|  |  Index Prefetch: None
|  |  Isolation Level: Uncommitted Read
|  |  Lock Intents
|  |  |  Table: Intent None
|  |  |  Row  : None
Return Data to Application
|  #Columns = 3

End of section


Optimizer Plan:

             Rows   
           Operator 
             (ID)   
             Cost   
                      
         1,69059e+008 
             n/a      
            RETURN    
             ( 1)     
         2,36238e+008 
              |       
         1,69059e+008 
             n/a      
            NLJOIN    
             ( 2)     
         2,36238e+008 
        /            \---\
  5,24234e+009            * 
      n/a                |           
     TBSCAN         6,47055e+006     
      ( 3)       Index:              
  1,56039e+008   sh2             
       |         small_tab_INDEX 
  5,24234e+009  
      n/a       
 Table:         
 sh1         
 big_tab 

 ----------------------------------------------------

 D:\scripts>db2expln -d russiadb -o d:\tmp\rows_10only -g -q "SELECT c1_id, c2_HISTORY_DATE, PAY_STATUS FROM big_tab WHERE c1_id in (select c1_id from small_tab fetch first 10 rows only) WITH UR"

DB2 Universal Database Version 9.7, 5622-044 (c) Copyright IBM Corp. 1991, 2009
Licensed Material - Program Property of IBM
IBM DB2 Universal Database SQL and XQUERY Explain Tool

******************** DYNAMIC ***************************************

==================== STATEMENT ==========================================

	Isolation Level          = Cursor Stability
	Blocking                 = Block Unambiguous Cursors
	Query Optimization Class = 5

	Partition Parallel       = No
	Intra-Partition Parallel = No

	SQL Path                 = "SYSIBM", "SYSFUN", "SYSPROC", "SYSIBMADM", 
                                   "DB2ADMIN"


Statement:
  
  SELECT c1_id, c2_HISTORY_DATE, PAY_STATUS 
  FROM big_tab 
  WHERE c1_id in 
     (select c1_id 
     from small_tab 
     fetch first 10 rows only)
  WITH UR

Statement Isolation Level = Uncommitted Read

Section Code Page = 1251

Estimated Cost = 972,537354
Estimated Cardinality = 261,275208

Access Table Name = small_tab  ID = 40,15
|  #Columns = 1
|  May participate in Scan Sharing structures
|  Scan may start anywhere and wrap, for completion
|  Scan can be throttled in scan sharing management
|  Relation Scan
|  |  Prefetch: Eligible
|  Isolation Level: Uncommitted Read
|  Lock Intents
|  |  Table: Intent None
|  |  Row  : None
Nested Loop Join
|  Piped Inner
|  Access Table Name = big_tab  ID = 8,4
|  |  Index Scan:  Name = big_tab_PK  ID = 1
|  |  |  Regular Index (Clustered)
|  |  |  Index Columns:
|  |  |  |  1: c1_id (Descending)
|  |  |  |  2: c2_HISTORY_DATE (Descending)
|  |  |  |  3: STREAM_ID (Descending)
|  |  #Columns = 0
|  |  #Key Columns = 1
|  |  |  Start Key: Inclusive Value
|  |  |  |  |  1: ?
|  |  |  Stop Key: Inclusive Value
|  |  |  |  |  1: ?
|  |  Index-Only Access
|  |  Index Prefetch: None
|  |  Isolation Level: Uncommitted Read
|  |  Lock Intents
|  |  |  Table: Intent None
|  |  |  Row  : None
|  |  Sargable Index Predicate(s)
|  |  |  Insert Into Sorted Temp Table  ID = t1
|  |  |  |  #Columns = 1
|  |  |  |  #Sort Key Columns = 1
|  |  |  |  |  Key 1: (Ascending)
|  |  |  |  Sortheap Allocation Parameters:
|  |  |  |  |  #Rows     = 27,000000
|  |  |  |  |  Row Width = 20
|  |  |  |  Piped
|  |  |  |  Duplicate Elimination
|  Sorted Temp Table Completion  ID = t1
|  List Prefetch Preparation
|  |  Access Table Name = big_tab  ID = 8,4
|  |  |  #Columns = 3
|  |  |  RID List Fetch Scan
|  |  |  Fetch Using Prefetched List
|  |  |  |  Prefetch: 2 Pages
|  |  |  Isolation Level: Uncommitted Read
|  |  |  Lock Intents
|  |  |  |  Table: Intent None
|  |  |  |  Row  : None
|  |  |  Sargable Predicate(s)
|  |  |  |  #Predicates = 1
Return Data to Application
|  #Columns = 3

End of section


Optimizer Plan:

                Rows   
              Operator 
                (ID)   
                Cost   
                      
              261,275 
                n/a   
              RETURN  
               ( 1)   
              972,537 
                |     
              261,275 
                n/a   
              NLJOIN  
               ( 2)   
              972,537 
           /-/       \-\
      10                26,1275 
      n/a                 n/a   
    TBSCAN               FETCH  
     ( 3)                (--)   
    38146,2             95,3037 
      |                /       \
 6,47055e+006   26,1275   5,24234e+009  
      n/a         n/a         n/a       
 Table:         RIDSCN   Table:         
 sh2         ( 5)    sh1         
 small_tab  51,4576  big_tab 
                  |     
                26,1275 
                  n/a   
                 SORT   
                 ( 6)   
                51,4571 
                  |     
                26,1275 
                  n/a   
                IXSCAN  
                 ( 7)   
                51,4532 
                  |          
             5,24234e+009    
           Index:            
           sh1            
           big_tab_PK 

...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39328518
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, MDC по h.c1_id ещё более напрашивается. Второй запрос им воспользуется наверняка (хотя, за вид, он и так должен быть быстрым), первый... ну, наверное, оптимизатор догадается, а если нет, то надо будет как-нибудь заставить.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39328533
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
use-se,

Желательно выполнить:
db2 "explain all with snapshot for select ..."
db2exfmt -d mydb -1 -o myplan.txt

Также дайте вывод:
db2set -all
И какие типы данных полей, по которым идёт соединение таблиц.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39329033
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinsteinuse-se,

Желательно выполнить:
db2 "explain all with snapshot for select ..."
db2exfmt -d mydb -1 -o myplan.txt

Также дайте вывод:
db2set -all
И какие типы данных полей, по которым идёт соединение таблиц.
Добрый день.

Извиняюсь за зедержку.
У меня такое чувство , что мое направление движения было в самом начале неверным как и вопрос, нус бывает,
прошу понять и простить.
Типы полей:
SMALL_TAB.C1_ID BIGINT,
BIG_TAB.C1_ID BIGINT
BIG_TAB.С1_HISTORY_DATE DATE
BIG_TAB.PAY_STATUS SMALLINT
Информация по нидексам:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE UNIQUE INDEX SH1.BIG_TAB_PK
  ON SH1.BIG_TAB
    ( C1_ID DESC, C2_HISTORY_DATE DESC, C3_ADV_ID DESC )
  CLUSTER
  ALLOW REVERSE SCANS
  COMPRESS NO
  COLLECT SAMPLED DETAILED STATISTICS;
 
CREATE UNIQUE INDEX SH2.SMALL_TAB_INDEX
  ON SH2.SMALL_TAB
    ( TIN ASC )
  PCTFREE 0
  ALLOW REVERSE SCANS
  COMPRESS NO;


Первый запрос 10 строк:
Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
574.
575.
576.
577.
578.
579.
580.
581.
582.
583.
584.
585.
586.
587.
588.
589.
590.
591.
592.
593.
594.
595.
596.
597.
598.
599.
600.
601.
602.
603.
604.
605.
606.
607.
608.
609.
610.
611.
612.
613.
614.
615.
616.
617.
618.
619.
620.
621.
622.
623.
624.
625.
626.
627.
628.
629.
630.
631.
632.
633.
634.
635.
636.
637.
638.
639.
640.
641.
642.
643.
644.
645.
646.
647.
648.
649.
650.
651.
652.
653.
654.
655.
656.
657.
658.
659.
660.
661.
662.
663.
664.
665.
666.
667.
668.
669.
670.
671.
672.
673.
674.
675.
676.
677.
678.
679.
680.
681.
682.
683.
684.
685.
686.
687.
688.
689.
690.
691.
692.
693.
694.
695.
696.
697.
698.
699.
700.
701.
702.
703.
704.
705.
706.
707.
708.
709.
710.
711.
712.
713.
714.
715.
716.
717.
718.
719.
720.
721.
722.
723.
724.
725.
726.
727.
728.
729.
730.
731.
732.
733.
734.
735.
736.
737.
738.
739.
740.
741.
742.
743.
744.
745.
746.
747.
748.
749.
750.
751.
752.
753.
754.
755.
756.
757.
758.
759.
760.
761.
762.
763.
764.
765.
766.
767.
768.
769.
770.
771.
772.
773.
774.
775.
776.
777.
778.
779.
780.
781.
782.
783.
784.
785.
786.
787.
788.
789.
790.
791.
792.
793.
794.
795.
796.
797.
798.
799.
800.
801.
802.
803.
804.
805.
806.
807.
808.
809.
810.
811.
812.
813.
814.
815.
816.
817.
818.
819.
820.
821.
822.
823.
824.
825.
826.
827.
828.
829.
830.
831.
832.
833.
834.
835.
836.
837.
838.
839.
840.
841.
842.
843.
844.
845.
846.
847.
848.
849.
850.
851.
852.
853.
854.
855.
856.
857.
858.
859.
860.
861.
862.
863.
864.
865.
866.
867.
868.
869.
870.
871.
872.
873.
874.
875.
876.
877.
878.
879.
880.
881.
882.
883.
884.
885.
886.
887.
888.
889.
890.
891.
892.
893.
894.
895.
896.
897.
898.
899.
900.
901.
902.
903.
904.
905.
906.
907.
908.
909.
910.
911.
912.
913.
914.
915.
916.
917.
918.
919.
920.
921.
922.
923.
924.
925.
926.
927.
928.
929.
930.
931.
932.
933.
934.
935.
936.
937.
938.
939.
940.
941.
942.
943.
944.
945.
946.
947.
948.
949.
950.
951.
952.
953.
954.
955.
956.
957.
958.
959.
960.
961.
962.
963.
964.
965.
========================== 1) plan for 10 rows ================
DB2 Universal Database Version 9.7, 5622-044 (c) Copyright IBM Corp. 1991, 2009
Licensed Material - Program Property of IBM
IBM DATABASE 2 Explain Table Format Tool



******************** EXPLAIN INSTANCE ********************

DB2_VERSION:       09.07.8
SOURCE_NAME:       SQLC2H23
SOURCE_SCHEMA:     NULLID  
SOURCE_VERSION:      
EXPLAIN_TIME:      2016-10-18-14.27.18.566001
EXPLAIN_REQUESTER: SH1  

Database Context:
----------------
	Parallelism:          None
	CPU Speed:            3,306410e-007
	Comm Speed:           0
	Buffer Pool size:     74211200
	Sort Heap size:       1019
	Database Heap size:   300000
	Lock List size:       8398150
	Maximum Lock List:    98
	Average Applications: 50
	Locks Available:      263365984

Package Context:
---------------
	SQL Type:           Dynamic
	Optimization Level: 5
	Blocking:           Block All Cursors
	Isolation Level:    Uncommitted Read



---------------- STATEMENT 1  SECTION 203 ----------------
	QUERYNO:       1
	QUERYTAG:                          
	Statement Type:   Select
	Updatable:        No
	Deletable:        No
	Query Degree:     1

Original Statement:
------------------
SELECT C1_ID, C2_HISTORY_DATE, PAY_STATUS 
FROM SH1.BIG_TAB 
WHERE C1_ID in 
   (select C1_ID 
   from SH2.SMALL_TAB 
   fetch first 10 rows only) 
     WITH UR


Optimized Statement:
-------------------
SELECT Q3.C1_ID AS "C1_ID", Q3.C2_HISTORY_DATE AS "C2_HISTORY_DATE", Q3.PAY_STATUS AS 
        "PAY_STATUS" 
FROM 
   (SELECT Q1.C1_ID 
   FROM SH2.SMALL_TAB AS Q1) AS Q2, SH1.BIG_TAB AS Q3 
WHERE (Q3.C1_ID = Q2.C1_ID)

Access Plan:
-----------
	Total Cost: 		972,537
	Query Degree:		1

               Rows 
              RETURN
              (   1)
               Cost 
                I/O 
                |
              261,275 
              NLJOIN
              (   2)
              972,537 
              370,949 
         /------+-------\
       10               26,1275 
     TBSCAN             FETCH 
     (   3)             (   4)
     38146,2            95,3037 
      29031               36 
       |              /---+----\
  6,47055e+006    26,1275   5,24234e+009 
 TABLE: SH2   RIDSCN   TABLE: SH1  
  SMALL_TAB   (   5)   BIG_TAB
       Q1         51,4576        Q3
                     4 
                    |
                  26,1275 
                  SORT  
                  (   6)
                  51,4571 
                     4 
                    |
                  26,1275 
                  IXSCAN
                  (   7)
                  51,4532 
                     4 
                    |
               5,24234e+009 
              INDEX: SH1  
             BIG_TAB_PK
                    Q3



Extended Diagnostic Information:
--------------------------------

No extended Diagnostic Information for this statement.


Plan Details:
-------------


	1) RETURN: (Return Result)
		Cumulative Total Cost: 		972,537
		Cumulative CPU Cost: 		6,13487e+006
		Cumulative I/O Cost: 		370,949
		Cumulative Re-Total Cost: 	0,705422
		Cumulative Re-CPU Cost: 	2,1335e+006
		Cumulative Re-I/O Cost: 	0
		Cumulative First Row Cost: 	73,3892
		Estimated Bufferpool Buffers: 	29391

		Arguments:
		---------
		BLDLEVEL: (Build level)
			DB2 v9.7.800.717 : s130316
		HEAPUSE : (Maximum Statement Heap Usage)
			96 Pages
		PREPTIME: (Statement prepare time)
			        29 milliseconds
		STMTHEAP: (Statement heap size)
			4096

		Input Streams:
		-------------
			9) From Operator #2

				Estimated number of rows: 	261,275
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q4.PAY_STATUS+Q4.C2_HISTORY_DATE+Q4.C1_ID


	2) NLJOIN: (Nested Loop Join)
		Cumulative Total Cost: 		972,537
		Cumulative CPU Cost: 		6,13487e+006
		Cumulative I/O Cost: 		370,949
		Cumulative Re-Total Cost: 	0,705422
		Cumulative Re-CPU Cost: 	2,1335e+006
		Cumulative Re-I/O Cost: 	0
		Cumulative First Row Cost: 	73,3892
		Estimated Bufferpool Buffers: 	29391

		Arguments:
		---------
		EARLYOUT: (Early Out flag)
			NONE
		FETCHMAX: (Override for FETCH MAXPAGES)
			IGNORE
		ISCANMAX: (Override for ISCAN MAXPAGES)
			IGNORE

		Predicates:
		----------
		2) Predicate used in Join, 
			Comparison Operator: 		Equal (=)
			Subquery Input Required: 	No
			Filter Factor: 			4,98394e-009

			Predicate Text:
			--------------
			(Q3.C1_ID = Q2.C1_ID)



		Input Streams:
		-------------
			2) From Operator #3

				Estimated number of rows: 	10
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.C1_ID

			8) From Operator #4

				Estimated number of rows: 	26,1275
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.PAY_STATUS+Q3.C2_HISTORY_DATE+Q3.C1_ID


		Output Streams:
		--------------
			9) To Operator #1

				Estimated number of rows: 	261,275
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q4.PAY_STATUS+Q4.C2_HISTORY_DATE+Q4.C1_ID


	3) TBSCAN: (Table Scan)
		Cumulative Total Cost: 		38146,2
		Cumulative CPU Cost: 		1,13216e+010
		Cumulative I/O Cost: 		29031
		Cumulative Re-Total Cost: 	3684,1
		Cumulative Re-CPU Cost: 	1,11423e+010
		Cumulative Re-I/O Cost: 	0
		Cumulative First Row Cost: 	9,0773
		Estimated Bufferpool Buffers: 	29031

		Arguments:
		---------
		JN INPUT: (Join input leg)
			OUTER
		MAXPAGES: (Maximum pages for prefetch)
			ALL
		PREFETCH: (Type of Prefetch)
			SEQUENTIAL
		ROWLOCK : (Row Lock intent)
			NONE
		SCANDIR : (Scan Direction)
			FORWARD
		SPEED   : (Assumed speed of scan, in sharing structures)
			SLOW
		TABLOCK : (Table Lock intent)
			INTENT NONE
		TBISOLVL: (Table access Isolation Level)
			UNCOMMITTED READ
		THROTTLE: (Scan may be throttled, for scan sharing)
			TRUE
		VISIBLE : (May be included in scan sharing structures)
			TRUE
		WRAPPING: (Scan may start anywhere and wrap)
			TRUE

		Input Streams:
		-------------
			1) From Object SH2.SMALL_TAB

				Estimated number of rows: 	6,47055e+006
				Number of columns: 		2
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q1.$RID$+Q1.C1_ID


		Output Streams:
		--------------
			2) To Operator #2

				Estimated number of rows: 	10
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.C1_ID


	4) FETCH : (Fetch)
		Cumulative Total Cost: 		95,3037
		Cumulative CPU Cost: 		404410
		Cumulative I/O Cost: 		36
		Cumulative Re-Total Cost: 	56,726
		Cumulative Re-CPU Cost: 	320514
		Cumulative Re-I/O Cost: 	32
		Cumulative First Row Cost: 	64,3119
		Estimated Bufferpool Buffers: 	1,39037e+009

		Arguments:
		---------
		JN INPUT: (Join input leg)
			INNER
		MAX RIDS: (Maximum RIDs per list prefetch request)
			512
		PREFETCH: (Type of Prefetch)
			LIST
		ROWLOCK : (Row Lock intent)
			NONE
		SPEED   : (Assumed speed of scan, in sharing structures)
			SLOW
		TABLOCK : (Table Lock intent)
			INTENT NONE
		TBISOLVL: (Table access Isolation Level)
			UNCOMMITTED READ
		THROTTLE: (Scan may be throttled, for scan sharing)
			FALSE
		VISIBLE : (May be included in scan sharing structures)
			FALSE
		WRAPPING: (Scan may start anywhere and wrap)
			FALSE

		Predicates:
		----------
		2) Sargable Predicate, 
			Comparison Operator: 		Equal (=)
			Subquery Input Required: 	No
			Filter Factor: 			4,98394e-009

			Predicate Text:
			--------------
			(Q3.C1_ID = Q2.C1_ID)



		Input Streams:
		-------------
			6) From Operator #5

				Estimated number of rows: 	26,1275
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.$RID$(A)

			7) From Object SH1.BIG_TAB

				Estimated number of rows: 	5,24234e+009
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.PAY_STATUS+Q3.C2_HISTORY_DATE+Q3.C1_ID


		Output Streams:
		--------------
			8) To Operator #2

				Estimated number of rows: 	26,1275
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.PAY_STATUS+Q3.C2_HISTORY_DATE+Q3.C1_ID


	5) RIDSCN: (Row Identifier Scan)
		Cumulative Total Cost: 		51,4576
		Cumulative CPU Cost: 		174047
		Cumulative I/O Cost: 		4
		Cumulative Re-Total Cost: 	12,8812
		Cumulative Re-CPU Cost: 	94401
		Cumulative Re-I/O Cost: 	0
		Cumulative First Row Cost: 	51,4571
		Estimated Bufferpool Buffers: 	5,70915e+007

		Arguments:
		---------
		NUMROWS : (Estimated number of rows)
			27

		Input Streams:
		-------------
			5) From Operator #6

				Estimated number of rows: 	26,1275
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.$RID$(A)


		Output Streams:
		--------------
			6) To Operator #4

				Estimated number of rows: 	26,1275
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.$RID$(A)


	6) SORT  : (Sort)
		Cumulative Total Cost: 		51,4571
		Cumulative CPU Cost: 		172760
		Cumulative I/O Cost: 		4
		Cumulative Re-Total Cost: 	12,8785
		Cumulative Re-CPU Cost: 	86332,1
		Cumulative Re-I/O Cost: 	0
		Cumulative First Row Cost: 	51,4571
		Estimated Bufferpool Buffers: 	5,70915e+007

		Arguments:
		---------
		DUPLWARN: (Duplicates Warning flag)
			TRUE
		NUMROWS : (Estimated number of rows)
			27
		ROWWIDTH: (Estimated width of rows)
			20
		SORTKEY : (Sort Key column)
			1: Q3.$RID$(A)
		TEMPSIZE: (Temporary Table Page Size)
			4096
		UNIQUE  : (Uniqueness required flag)
			TRUE

		Input Streams:
		-------------
			4) From Operator #7

				Estimated number of rows: 	26,1275
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.C1_ID(D)+Q3.C2_HISTORY_DATE(D)+Q3.$RID$


		Output Streams:
		--------------
			5) To Operator #5

				Estimated number of rows: 	26,1275
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.$RID$(A)


	7) IXSCAN: (Index Scan)
		Cumulative Total Cost: 		51,4532
		Cumulative CPU Cost: 		160793
		Cumulative I/O Cost: 		4
		Cumulative Re-Total Cost: 	12,8785
		Cumulative Re-CPU Cost: 	86332,1
		Cumulative Re-I/O Cost: 	1
		Cumulative First Row Cost: 	51,4383
		Estimated Bufferpool Buffers: 	5,70915e+007

		Arguments:
		---------
		MAXPAGES: (Maximum pages for prefetch)
			1
		PREFETCH: (Type of Prefetch)
			NONE
		ROWLOCK : (Row Lock intent)
			NONE
		SCANDIR : (Scan Direction)
			FORWARD
		TABLOCK : (Table Lock intent)
			INTENT NONE
		TBISOLVL: (Table access Isolation Level)
			UNCOMMITTED READ

		Predicates:
		----------
		2) Start Key Predicate, 
			Comparison Operator: 		Equal (=)
			Subquery Input Required: 	No
			Filter Factor: 			4,98394e-009

			Predicate Text:
			--------------
			(Q3.C1_ID = Q2.C1_ID)


		2) Stop Key Predicate, 
			Comparison Operator: 		Equal (=)
			Subquery Input Required: 	No
			Filter Factor: 			4,98394e-009

			Predicate Text:
			--------------
			(Q3.C1_ID = Q2.C1_ID)



		Input Streams:
		-------------
			3) From Object SH1.BIG_TAB_PK

				Estimated number of rows: 	5,24234e+009
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.C1_ID(D)+Q3.C2_HISTORY_DATE(D)+Q3.$RID$


		Output Streams:
		--------------
			4) To Operator #6

				Estimated number of rows: 	26,1275
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.C1_ID(D)+Q3.C2_HISTORY_DATE(D)+Q3.$RID$


Objects Used in Access Plan:
---------------------------

	Schema: SH1  
	Name: 	BIG_TAB_PK
	Type: 	Index

	Schema: SH1  
	Name: 	BIG_TAB
	Type: 	Table

	Schema: SH2 
	Name: 	SMALL_TAB
	Type: 	Table

Extended Statistics Information:
--------------------------------

Tablespace Context:
-------------------
		Name:                                         	T_H_TS_IDX
		Overhead:                                     	12.670000 
		Transfer Rate:                                	0.180000 
		Prefetch Size:                                	1920 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

		Name:                                         	T_H_TS_TBLS     
		Overhead:                                     	12.670000 
		Transfer Rate:                                	0.180000 
		Prefetch Size:                                	1920 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

		Name:                                         	GVAPTABS          
		Overhead:                                     	9.000000 
		Transfer Rate:                                	0.060000 
		Prefetch Size:                                	192 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

Base Table Statistics:
----------------------
Name  : 	SMALL_TAB
Schema: 	SH2 
		Number of Columns:                            	1 
		Number of Pages with Rows:                    	29031
		Number of Pages:                              	29031
		Number of Rows:                               	6470552
		Table Overflow Record Count:                  	0
		Width of Rows:                                	14 
		Time of Creation:                             	2016-09-09-01.00.34.218012
		Last Statistics Update:                       	2016-09-09-01.21.43.373004
		Primary Tablespace:                           	GVAPTABS          
		Tablespace for Indexes:                       	GVAPTABS          
		Tablespace for Long Data:                     	NULLP
		Number of Referenced Columns:                 	1 
		Number of Indexes:                            	1 
		Volatile Table:                               	No
		Number of Active Blocks:                      	-1
		Number of Column Groups:                      	0 
		Number of Data Partitions:                    	1 
		Average Row Compression Ratio:                	-1.000000 
		Percent Rows Compressed:                      	-1.000000 
		Average Compressed Row Size:                  	-1 
		Statistics Type:                              	U

	Column Information:
	--------------------
		Number:                                       	1 
		Name:                                         	C1_ID
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	BIGINT
			Maximum column length:                        	8 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	6470552
			Average column length:                        	8 
			Number of most frequent values:               	-1 
			Number of quantiles:                          	20 
			Second highest data value:                    	268615579
			Second lowest data value:                     	1537590
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			1 		1142011		1
			340555 		87288721		340555
			681111 		106824791		681111
			1021666 		132208218		1021666
			1362221 		144856874		1362221
			1702777 		152931756		1702777
			2043332 		164940760		2043332
			2383888 		178662943		2383888
			2724443 		190381699		2724443
			3064998 		199993277		3064998
			3405554 		211764305		3405554
			3746109 		231107293		3746109
			4086664 		237462093		4086664
			4427220 		241699507		4427220
			4767775 		246905464		4767775
			5108331 		252268977		5108331
			5448886 		257246078		5448886
			5789441 		261978211		5789441
			6129997 		266292888		6129997
			6470552 		268615580		6470552

	Indexes defined on the table:
	-----------------------------
	Name  :	SMALL_TAB_INDEX
	Schema:	SH2 
		Unique Rule:                                  	Unique key index
		Used in Operator:                             	No
		Page Fetch Pairs:                             	Available
		Number of Columns:                            	1 
		Index Leaf Pages:                             	30813
		Index Tree Levels:                            	3 
		Index First Key Cardinality:                  	6470552
		Index Full Key Cardinality:                   	6470552
		Index Cluster Ratio:                          	-1 
		Index Cluster Factor:                         	1.000000 
		Time of Creation:                             	2016-09-09-01.21.37.850007
		Last Statistics Update:                       	2016-09-09-01.21.43.373004
		Index Sequential Pages:                       	30812
		Index First 2 Keys Cardinality:               	-1
		Index First 3 Keys Cardinality:               	-1
		Index First 4 Keys Cardinality:               	-1
		Index Avg Gap between Sequences:              	0.000000 
		Fetch Avg Gap between Sequences:              	-1.000000 
		Index Avg Sequential Pages:                   	30812.000000 
		Fetch Avg Sequential Pages:                   	-1.000000 
		Index Avg Random Pages:                       	0.000000 
		Fetch Avg Random Pages:                       	-1.000000 
		Index RID Count:                              	6470552
		Index Deleted RID Count:                      	0
		Index Empty Leaf Pages:                       	0
		Avg Partition Cluster Ratio:                  	-1 
		Avg Partition Cluster Factor:                 	-1.000000 
		Data Partition Cluster Factor:                	1.000000 
		Data Partition Page Fetch Pairs:              	Not Available

		Page Fetch Pairs information:
		-----------------------------
		Number of Page Fetch Pairs:                   	11 

				Buffer Size		Page Fetches
		--------------------------------------------------------
		Pair 1:  	100			29031
		Pair 2:  	2316			29031
		Pair 3:  	5790			29031
		Pair 4:  	9264			29031
		Pair 5:  	12738			29031
		Pair 6:  	16212			29031
		Pair 7:  	19686			29031
		Pair 8:  	23160			29031
		Pair 9:  	26634			29031
		Pair 10:  	29031			29031
		Pair 11:  	29031			29031

Base Table Statistics:
----------------------
Name  : 	BIG_TAB
Schema: 	SH1  
		Number of Columns:                            	9 
		Number of Pages with Rows:                    	86677492
		Number of Pages:                              	86677492
		Number of Rows:                               	5242341755
		Table Overflow Record Count:                  	0
		Width of Rows:                                	44 
		Time of Creation:                             	2015-05-02-21.32.08.419004
		Last Statistics Update:                       	2016-10-12-11.06.17.653000
		Primary Tablespace:                           	T_H_TS_TBLS     
		Tablespace for Indexes:                       	T_H_TS_IDX
		Tablespace for Long Data:                     	NULLP
		Number of Referenced Columns:                 	3 
		Number of Indexes:                            	1 
		Volatile Table:                               	No
		Number of Active Blocks:                      	-1
		Number of Column Groups:                      	0 
		Number of Data Partitions:                    	1 
		Average Row Compression Ratio:                	-1.000000 
		Percent Rows Compressed:                      	-1.000000 
		Average Compressed Row Size:                  	-1 
		Statistics Type:                              	U

	Column Information:
	--------------------
		Number:                                       	4 
		Name:                                         	PAY_STATUS
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	SMALLINT
			Maximum column length:                        	2 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	11
			Average column length:                        	2 
			Number of most frequent values:               	10 
			Number of quantiles:                          	14 
			Second highest data value:                    	2052
			Second lowest data value:                     	2025
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Frequency Statistics:
			Valcount	Value 
			--------------------------------
			-226909440 		2022		
			335509920 		2025		
			314540544 		2043		
			199209008 		2037		
			110089192 		2028		
			73392800 		2031		
			73392800 		2034		
			31454056 		2052		
			26211712 		2040		
			10484685 		2046		

			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			0 		2022		0
			-226909440 		2022		0
			-158759168 		2025		0
			48313344 		2025		0
			119085056 		2028		0
			187235840 		2028		0
			255385600 		2031		0
			326157824 		2034		0
			394308096 		2037		0
			533230080 		2037		0
			601380864 		2043		0
			879224832 		2043		0
			947374459 		2052		0
			947374459 		2052		0

	Column Information:
	--------------------
		Number:                                       	2 
		Name:                                         	C2_HISTORY_DATE
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	DATE
			Maximum column length:                        	4 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	3776
			Average column length:                        	4 
			Number of most frequent values:               	10 
			Number of quantiles:                          	20 
			Second highest data value:                    	2016-09-30
			Second lowest data value:                     	1998-03-01
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Frequency Statistics:
			Valcount	Value 
			--------------------------------
			20969370 		2013-12-01		
			18348200 		2015-03-24		
			15727028 		2012-01-01		
			15727028 		2012-07-01		
			15727028 		2014-06-01		
			15727028 		2014-11-30		
			15727028 		2015-01-14		
			15727028 		2015-05-14		
			15727028 		2016-02-13		
			15727028 		2016-07-01		

			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			2621171 		2006-01-01		0
			275222976 		2009-08-08		0
			553067136 		2011-03-25		0
			838774784 		2012-01-01		0
			1111376640 		2012-07-01		0
			1381357184 		2012-12-19		0
			1656580352 		2013-06-01		0
			1931803264 		2013-10-01		0
			-2087941120 		2014-01-22		0
			-1810096896 		2014-05-27		0
			-1532252928 		2014-08-21		0
			-1254408960 		2014-12-15		0
			-984427776 		2015-03-11		0
			-709204736 		2015-05-31		0
			-431360768 		2015-08-29		0
			-156137984 		2015-11-27		0
			121705984 		2016-02-06		0
			396929024 		2016-04-09		0
			672152064 		2016-06-13		0
			947374459 		2016-09-01		0

	Column Information:
	--------------------
		Number:                                       	1 
		Name:                                         	C1_ID
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	BIGINT
			Maximum column length:                        	8 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	200644459
			Average column length:                        	8 
			Number of most frequent values:               	10 
			Number of quantiles:                          	20 
			Second highest data value:                    	268783998
			Second lowest data value:                     	1067929
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Frequency Statistics:
			Valcount	Value 
			--------------------------------
			1299 		36438362		
			1288 		36447884		
			1131 		33866795		
			1125 		32505228		
			1112 		33812528		
			1106 		84402767		
			1084 		78760604		
			1083 		41686576		
			1077 		33504966		
			1074 		83684924		

			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			9 		1067928		1
			-1535840067 		148562089		96135473
			-1535839970 		148562090		96135474
			-1259927333 		156774640		103673316
			-1259927325 		156774641		103673317
			-984014650 		166080005		112142940
			-984014573 		166080006		112142941
			-708101903 		176682081		121106182
			-708101879 		176682082		121106183
			-432189190 		185813489		129730788
			-432189060 		185813490		129730789
			-156276450 		196955705		139491342
			-156276427 		196955706		139491343
			119636278 		208728225		149829902
			119636290 		208728226		149829903
			395549005 		226710331		162637745
			395549032 		226710332		162637746
			671461724 		243685423		178698359
			671461737 		243685424		178698360
			947374459 		268783999		200644459

	Indexes defined on the table:
	-----------------------------
	Name  :	BIG_TAB_PK
	Schema:	SH1  
		Unique Rule:                                  	Primary key index
		Used in Operator:                             	Yes
		Page Fetch Pairs:                             	Available
		Number of Columns:                            	3 
		Index Leaf Pages:                             	57207556
		Index Tree Levels:                            	5 
		Index First Key Cardinality:                  	200644459
		Index Full Key Cardinality:                   	5242341755
		Index Cluster Ratio:                          	-1 
		Index Cluster Factor:                         	0.686509 
		Time of Creation:                             	2015-05-02-21.32.08.528002
		Last Statistics Update:                       	2016-10-12-11.06.17.653000
		Index Sequential Pages:                       	28302903
		Index First 2 Keys Cardinality:               	5241031435
		Index First 3 Keys Cardinality:               	5242341755
		Index First 4 Keys Cardinality:               	-1
		Index Avg Gap between Sequences:              	222959.000000 
		Fetch Avg Gap between Sequences:              	-1.000000 
		Index Avg Sequential Pages:                   	786191.000000 
		Fetch Avg Sequential Pages:                   	-1.000000 
		Index Avg Random Pages:                       	586145.000000 
		Fetch Avg Random Pages:                       	-1.000000 
		Index RID Count:                              	5321149234
		Index Deleted RID Count:                      	73837652
		Index Empty Leaf Pages:                       	55765
		Avg Partition Cluster Ratio:                  	-1 
		Avg Partition Cluster Factor:                 	-1.000000 
		Data Partition Cluster Factor:                	1.000000 
		Data Partition Page Fetch Pairs:              	Not Available

		Page Fetch Pairs information:
		-----------------------------
		Number of Page Fetch Pairs:                   	11 

				Buffer Size		Page Fetches
		--------------------------------------------------------
		Pair 1:  	100			1039302010
		Pair 2:  	350052			416376800
		Pair 3:  	9451404			206844276
		Pair 4:  	22053276			118214180
		Pair 5:  	31504680			98877758
		Pair 6:  	41656188			91777118
		Pair 7:  	53207904			89230548
		Pair 8:  	67910088			87250817
		Pair 9:  	86112792			86889824
		Pair 10:  	86462766			86462766
		Pair 11:  	86462766			86462766

Второй запрос ВСЕ строки:
Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
574.
575.
576.
577.
578.
579.
580.
581.
582.
583.
584.
585.
586.
587.
588.
589.
590.
591.
592.
593.
594.
595.
596.
597.
598.
599.
600.
601.
602.
603.
604.
605.
606.
607.
608.
609.
610.
611.
612.
613.
614.
615.
616.
617.
618.
619.
620.
621.
622.
623.
624.
625.
626.
627.
628.
629.
630.
631.
632.
633.
634.
635.
636.
637.
638.
639.
640.
641.
642.
643.
644.
645.
646.
647.
648.
649.
650.
651.
652.
653.
654.
655.
656.
657.
658.
659.
660.
661.
662.
663.
664.
665.
666.
667.
668.
669.
670.
671.
672.
673.
674.
675.
676.
677.
678.
679.
680.
681.
682.
683.
684.
685.
686.
687.
688.
689.
690.
691.
692.
693.
694.
695.
696.
697.
698.
699.
700.
701.
702.
703.
704.
705.
706.
707.
708.
709.
710.
711.
712.
713.
714.
715.
716.
717.
718.
719.
720.
721.
722.
723.
724.
725.
726.
727.
728.
729.
730.
731.
732.
733.
734.
735.
736.
737.
738.
739.
740.
741.
742.
743.
744.
745.
746.
747.
748.
749.
750.
751.
752.
753.
754.
755.
756.
757.
758.
759.
760.
761.
762.
763.
764.
765.
766.
767.
768.
769.
770.
771.
772.
773.
774.
775.
776.
777.
778.
779.
780.
781.
782.
783.
784.
DB2 Universal Database Version 9.7, 5622-044 (c) Copyright IBM Corp. 1991, 2009
Licensed Material - Program Property of IBM
IBM DATABASE 2 Explain Table Format Tool



******************** EXPLAIN INSTANCE ********************

DB2_VERSION:       09.07.8
SOURCE_NAME:       SQLC2H23
SOURCE_SCHEMA:     NULLID  
SOURCE_VERSION:      
EXPLAIN_TIME:      2016-10-18-14.27.17.864001
EXPLAIN_REQUESTER: SH1  

Database Context:
----------------
	Parallelism:          None
	CPU Speed:            3,306410e-007
	Comm Speed:           0
	Buffer Pool size:     74211200
	Sort Heap size:       1019
	Database Heap size:   300000
	Lock List size:       8398150
	Maximum Lock List:    98
	Average Applications: 50
	Locks Available:      263365984

Package Context:
---------------
	SQL Type:           Dynamic
	Optimization Level: 5
	Blocking:           Block All Cursors
	Isolation Level:    Uncommitted Read



---------------- STATEMENT 1  SECTION 203 ----------------
	QUERYNO:       1
	QUERYTAG:                          
	Statement Type:   Select
	Updatable:        No
	Deletable:        No
	Query Degree:     1

Original Statement:
------------------
SELECT h.C1_ID, h.C2_HISTORY_DATE, h.PAY_STATUS 
FROM SH1.BIG_TAB h, SH2.SMALL_TAB l 
WHERE h.C1_ID = l.C1_ID 
     WITH UR


Optimized Statement:
-------------------
SELECT Q2.C1_ID AS "C1_ID", Q2.C2_HISTORY_DATE AS "C2_HISTORY_DATE", Q2.PAY_STATUS AS 
        "PAY_STATUS" 
FROM SH2.SMALL_TAB AS Q1, SH1.BIG_TAB AS Q2 
WHERE (Q2.C1_ID = Q1.C1_ID)

Access Plan:
-----------
	Total Cost: 		2,36238e+008
	Query Degree:		1

               Rows 
              RETURN
              (   1)
               Cost 
                I/O 
                |
           1,69059e+008 
              ^NLJOIN
              (   2)
           2,36238e+008 
           8,67083e+007 
         /------+-------\
  5,24234e+009         0,0322488 
     TBSCAN             IXSCAN
     (   3)             (   4)
  1,56039e+008          18,1524 
  8,66775e+007             2 
       |                  |
  5,24234e+009       6,47055e+006 
 TABLE: SH1      INDEX: SH2 
 BIG_TAB   SMALL_TAB_INDEX
       Q2                 Q1



Extended Diagnostic Information:
--------------------------------

No extended Diagnostic Information for this statement.


Plan Details:
-------------


	1) RETURN: (Return Result)
		Cumulative Total Cost: 		2,36238e+008
		Cumulative CPU Cost: 		2,51275e+014
		Cumulative I/O Cost: 		8,67083e+007
		Cumulative Re-Total Cost: 	2,35959e+008
		Cumulative Re-CPU Cost: 	2,51275e+014
		Cumulative Re-I/O Cost: 	8,66775e+007
		Cumulative First Row Cost: 	32,3724
		Estimated Bufferpool Buffers: 	8,67083e+007

		Arguments:
		---------
		BLDLEVEL: (Build level)
			DB2 v9.7.800.717 : s130316
		HEAPUSE : (Maximum Statement Heap Usage)
			96 Pages
		PREPTIME: (Statement prepare time)
			         6 milliseconds
		STMTHEAP: (Statement heap size)
			4096

		Input Streams:
		-------------
			5) From Operator #2

				Estimated number of rows: 	1,69059e+008
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.PAY_STATUS+Q3.C2_HISTORY_DATE+Q3.C1_ID


	2) NLJOIN: (Nested Loop Join)
		Cumulative Total Cost: 		2,36238e+008
		Cumulative CPU Cost: 		2,51275e+014
		Cumulative I/O Cost: 		8,67083e+007
		Cumulative Re-Total Cost: 	2,35959e+008
		Cumulative Re-CPU Cost: 	2,51275e+014
		Cumulative Re-I/O Cost: 	8,66775e+007
		Cumulative First Row Cost: 	32,3724
		Estimated Bufferpool Buffers: 	8,67083e+007

		Arguments:
		---------
		EARLYOUT: (Early Out flag)
			LEFT
		FETCHMAX: (Override for FETCH MAXPAGES)
			IGNORE
		ISCANMAX: (Override for ISCAN MAXPAGES)
			IGNORE

		Predicates:
		----------
		2) Predicate used in Join, 
			Comparison Operator: 		Equal (=)
			Subquery Input Required: 	No
			Filter Factor: 			4,98394e-009

			Predicate Text:
			--------------
			(Q2.C1_ID = Q1.C1_ID)



		Input Streams:
		-------------
			2) From Operator #3

				Estimated number of rows: 	5,24234e+009
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.PAY_STATUS+Q2.C2_HISTORY_DATE+Q2.C1_ID

			4) From Operator #4

				Estimated number of rows: 	0,0322488
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q1.C1_ID(A)


		Output Streams:
		--------------
			5) To Operator #1

				Estimated number of rows: 	1,69059e+008
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.PAY_STATUS+Q3.C2_HISTORY_DATE+Q3.C1_ID


	3) TBSCAN: (Table Scan)
		Cumulative Total Cost: 		1,56039e+008
		Cumulative CPU Cost: 		9,56255e+012
		Cumulative I/O Cost: 		8,66775e+007
		Cumulative Re-Total Cost: 	1,56039e+008
		Cumulative Re-CPU Cost: 	9,56255e+012
		Cumulative Re-I/O Cost: 	8,66775e+007
		Cumulative First Row Cost: 	12,8677
		Estimated Bufferpool Buffers: 	8,66775e+007

		Arguments:
		---------
		JN INPUT: (Join input leg)
			OUTER
		MAXPAGES: (Maximum pages for prefetch)
			ALL
		PREFETCH: (Type of Prefetch)
			SEQUENTIAL
		ROWLOCK : (Row Lock intent)
			NONE
		SCANDIR : (Scan Direction)
			FORWARD
		SPEED   : (Assumed speed of scan, in sharing structures)
			SLOW
		TABLOCK : (Table Lock intent)
			INTENT NONE
		TBISOLVL: (Table access Isolation Level)
			UNCOMMITTED READ
		THROTTLE: (Scan may be throttled, for scan sharing)
			TRUE
		VISIBLE : (May be included in scan sharing structures)
			TRUE
		WRAPPING: (Scan may start anywhere and wrap)
			TRUE

		Input Streams:
		-------------
			1) From Object SH1.BIG_TAB

				Estimated number of rows: 	5,24234e+009
				Number of columns: 		4
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.$RID$+Q2.PAY_STATUS+Q2.C2_HISTORY_DATE+Q2.C1_ID


		Output Streams:
		--------------
			2) To Operator #2

				Estimated number of rows: 	5,24234e+009
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.PAY_STATUS+Q2.C2_HISTORY_DATE+Q2.C1_ID


	4) IXSCAN: (Index Scan)
		Cumulative Total Cost: 		18,1524
		Cumulative CPU Cost: 		97968,7
		Cumulative I/O Cost: 		2
		Cumulative Re-Total Cost: 	9,07637
		Cumulative Re-CPU Cost: 	49507,7
		Cumulative Re-I/O Cost: 	1
		Cumulative First Row Cost: 	18,1524
		Estimated Bufferpool Buffers: 	30815

		Arguments:
		---------
		JN INPUT: (Join input leg)
			INNER
		MAXPAGES: (Maximum pages for prefetch)
			1
		PREFETCH: (Type of Prefetch)
			NONE
		ROWLOCK : (Row Lock intent)
			NONE
		SCANDIR : (Scan Direction)
			FORWARD
		TABLOCK : (Table Lock intent)
			INTENT NONE
		TBISOLVL: (Table access Isolation Level)
			UNCOMMITTED READ

		Predicates:
		----------
		2) Start Key Predicate, 
			Comparison Operator: 		Equal (=)
			Subquery Input Required: 	No
			Filter Factor: 			4,98394e-009

			Predicate Text:
			--------------
			(Q2.C1_ID = Q1.C1_ID)


		2) Stop Key Predicate, 
			Comparison Operator: 		Equal (=)
			Subquery Input Required: 	No
			Filter Factor: 			4,98394e-009

			Predicate Text:
			--------------
			(Q2.C1_ID = Q1.C1_ID)



		Input Streams:
		-------------
			3) From Object SH2.SMALL_TAB_INDEX

				Estimated number of rows: 	6,47055e+006
				Number of columns: 		2
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q1.C1_ID(A)+Q1.$RID$


		Output Streams:
		--------------
			4) To Operator #2

				Estimated number of rows: 	0,0322488
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q1.C1_ID(A)


Objects Used in Access Plan:
---------------------------

	Schema: SH2 
	Name: 	SMALL_TAB
	Type: 	Table (reference only)

	Schema: SH2 
	Name: 	SMALL_TAB_INDEX
	Type: 	Index

	Schema: SH1  
	Name: 	BIG_TAB
	Type: 	Table

Base Table For Index Not Already Shown:
---------------------------------------

	Schema: SH2 
	Name: 	SMALL_TAB
			Tablespace name: 		GVAPTABS
			Tablespace overhead: 		9,000000
			Tablespace transfer rate: 	0,060000
			Prefetch page count: 		-1
			Container extent page count: 	32

			Long tablespace name: 		GVAPTABS


Extended Statistics Information:
--------------------------------

Tablespace Context:
-------------------
		Name:                                         	T_H_TS_IDX
		Overhead:                                     	12.670000 
		Transfer Rate:                                	0.180000 
		Prefetch Size:                                	1920 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

		Name:                                         	T_H_TS_TBLS     
		Overhead:                                     	12.670000 
		Transfer Rate:                                	0.180000 
		Prefetch Size:                                	1920 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

		Name:                                         	GVAPTABS          
		Overhead:                                     	9.000000 
		Transfer Rate:                                	0.060000 
		Prefetch Size:                                	192 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

Base Table Statistics:
----------------------
Name  : 	BIG_TAB
Schema: 	SH1  
		Number of Columns:                            	9 
		Number of Pages with Rows:                    	86677492
		Number of Pages:                              	86677492
		Number of Rows:                               	5242341755
		Table Overflow Record Count:                  	0
		Width of Rows:                                	44 
		Time of Creation:                             	2015-05-02-21.32.08.419004
		Last Statistics Update:                       	2016-10-12-11.06.17.653000
		Primary Tablespace:                           	T_H_TS_TBLS     
		Tablespace for Indexes:                       	T_H_TS_IDX
		Tablespace for Long Data:                     	NULLP
		Number of Referenced Columns:                 	3 
		Number of Indexes:                            	1 
		Volatile Table:                               	No
		Number of Active Blocks:                      	-1
		Number of Column Groups:                      	0 
		Number of Data Partitions:                    	1 
		Average Row Compression Ratio:                	-1.000000 
		Percent Rows Compressed:                      	-1.000000 
		Average Compressed Row Size:                  	-1 
		Statistics Type:                              	U

	Column Information:
	--------------------
		Number:                                       	4 
		Name:                                         	PAY_STATUS
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	SMALLINT
			Maximum column length:                        	2 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	11
			Average column length:                        	2 
			Number of most frequent values:               	10 
			Number of quantiles:                          	14 
			Second highest data value:                    	2052
			Second lowest data value:                     	2025
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Frequency Statistics:
			Valcount	Value 
			--------------------------------
			-226909440 		2022		
			335509920 		2025		
			314540544 		2043		
			199209008 		2037		
			110089192 		2028		
			73392800 		2031		
			73392800 		2034		
			31454056 		2052		
			26211712 		2040		
			10484685 		2046		

			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			0 		2022		0
			-226909440 		2022		0
			-158759168 		2025		0
			48313344 		2025		0
			119085056 		2028		0
			187235840 		2028		0
			255385600 		2031		0
			326157824 		2034		0
			394308096 		2037		0
			533230080 		2037		0
			601380864 		2043		0
			879224832 		2043		0
			947374459 		2052		0
			947374459 		2052		0

	Column Information:
	--------------------
		Number:                                       	2 
		Name:                                         	C2_HISTORY_DATE
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	DATE
			Maximum column length:                        	4 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	3776
			Average column length:                        	4 
			Number of most frequent values:               	10 
			Number of quantiles:                          	20 
			Second highest data value:                    	2016-09-30
			Second lowest data value:                     	1998-03-01
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Frequency Statistics:
			Valcount	Value 
			--------------------------------
			20969370 		2013-12-01		
			18348200 		2015-03-24		
			15727028 		2012-01-01		
			15727028 		2012-07-01		
			15727028 		2014-06-01		
			15727028 		2014-11-30		
			15727028 		2015-01-14		
			15727028 		2015-05-14		
			15727028 		2016-02-13		
			15727028 		2016-07-01		

			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			2621171 		2006-01-01		0
			275222976 		2009-08-08		0
			553067136 		2011-03-25		0
			838774784 		2012-01-01		0
			1111376640 		2012-07-01		0
			1381357184 		2012-12-19		0
			1656580352 		2013-06-01		0
			1931803264 		2013-10-01		0
			-2087941120 		2014-01-22		0
			-1810096896 		2014-05-27		0
			-1532252928 		2014-08-21		0
			-1254408960 		2014-12-15		0
			-984427776 		2015-03-11		0
			-709204736 		2015-05-31		0
			-431360768 		2015-08-29		0
			-156137984 		2015-11-27		0
			121705984 		2016-02-06		0
			396929024 		2016-04-09		0
			672152064 		2016-06-13		0
			947374459 		2016-09-01		0

	Column Information:
	--------------------
		Number:                                       	1 
		Name:                                         	C1_ID
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	BIGINT
			Maximum column length:                        	8 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	200644459
			Average column length:                        	8 
			Number of most frequent values:               	10 
			Number of quantiles:                          	20 
			Second highest data value:                    	268783998
			Second lowest data value:                     	1067929
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Frequency Statistics:
			Valcount	Value 
			--------------------------------
			1299 		36438362		
			1288 		36447884		
			1131 		33866795		
			1125 		32505228		
			1112 		33812528		
			1106 		84402767		
			1084 		78760604		
			1083 		41686576		
			1077 		33504966		
			1074 		83684924		

			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			9 		1067928		1
			-1535840067 		148562089		96135473
			-1535839970 		148562090		96135474
			-1259927333 		156774640		103673316
			-1259927325 		156774641		103673317
			-984014650 		166080005		112142940
			-984014573 		166080006		112142941
			-708101903 		176682081		121106182
			-708101879 		176682082		121106183
			-432189190 		185813489		129730788
			-432189060 		185813490		129730789
			-156276450 		196955705		139491342
			-156276427 		196955706		139491343
			119636278 		208728225		149829902
			119636290 		208728226		149829903
			395549005 		226710331		162637745
			395549032 		226710332		162637746
			671461724 		243685423		178698359
			671461737 		243685424		178698360
			947374459 		268783999		200644459

	Indexes defined on the table:
	-----------------------------
	Name  :	BIG_TAB_PK
	Schema:	SH1  
		Unique Rule:                                  	Primary key index
		Used in Operator:                             	No
		Page Fetch Pairs:                             	Available
		Number of Columns:                            	3 
		Index Leaf Pages:                             	57207556
		Index Tree Levels:                            	5 
		Index First Key Cardinality:                  	200644459
		Index Full Key Cardinality:                   	5242341755
		Index Cluster Ratio:                          	-1 
		Index Cluster Factor:                         	0.686509 
		Time of Creation:                             	2015-05-02-21.32.08.528002
		Last Statistics Update:                       	2016-10-12-11.06.17.653000
		Index Sequential Pages:                       	28302903
		Index First 2 Keys Cardinality:               	5241031435
		Index First 3 Keys Cardinality:               	5242341755
		Index First 4 Keys Cardinality:               	-1
		Index Avg Gap between Sequences:              	222959.000000 
		Fetch Avg Gap between Sequences:              	-1.000000 
		Index Avg Sequential Pages:                   	786191.000000 
		Fetch Avg Sequential Pages:                   	-1.000000 
		Index Avg Random Pages:                       	586145.000000 
		Fetch Avg Random Pages:                       	-1.000000 
		Index RID Count:                              	5321149234
		Index Deleted RID Count:                      	73837652
		Index Empty Leaf Pages:                       	55765
		Avg Partition Cluster Ratio:                  	-1 
		Avg Partition Cluster Factor:                 	-1.000000 
		Data Partition Cluster Factor:                	1.000000 
		Data Partition Page Fetch Pairs:              	Not Available

		Page Fetch Pairs information:
		-----------------------------
		Number of Page Fetch Pairs:                   	11 

				Buffer Size		Page Fetches
		--------------------------------------------------------
		Pair 1:  	100			1039302010
		Pair 2:  	350052			416376800
		Pair 3:  	9451404			206844276
		Pair 4:  	22053276			118214180
		Pair 5:  	31504680			98877758
		Pair 6:  	41656188			91777118
		Pair 7:  	53207904			89230548
		Pair 8:  	67910088			87250817
		Pair 9:  	86112792			86889824
		Pair 10:  	86462766			86462766
		Pair 11:  	86462766			86462766

Base Table Statistics:
----------------------
Name  : 	SMALL_TAB
Schema: 	SH2 
		Number of Columns:                            	1 
		Number of Pages with Rows:                    	29031
		Number of Pages:                              	29031
		Number of Rows:                               	6470552
		Table Overflow Record Count:                  	0
		Width of Rows:                                	14 
		Time of Creation:                             	2016-09-09-01.00.34.218012
		Last Statistics Update:                       	2016-09-09-01.21.43.373004
		Primary Tablespace:                           	GVAPTABS          
		Tablespace for Indexes:                       	GVAPTABS          
		Tablespace for Long Data:                     	NULLP
		Number of Referenced Columns:                 	1 
		Number of Indexes:                            	1 
		Volatile Table:                               	No
		Number of Active Blocks:                      	-1
		Number of Column Groups:                      	0 
		Number of Data Partitions:                    	1 
		Average Row Compression Ratio:                	-1.000000 
		Percent Rows Compressed:                      	-1.000000 
		Average Compressed Row Size:                  	-1 
		Statistics Type:                              	U

	Column Information:
	--------------------
		Number:                                       	1 
		Name:                                         	C1_ID
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	BIGINT
			Maximum column length:                        	8 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	6470552
			Average column length:                        	8 
			Number of most frequent values:               	-1 
			Number of quantiles:                          	20 
			Second highest data value:                    	268615579
			Second lowest data value:                     	1537590
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			1 		1142011		1
			340555 		87288721		340555
			681111 		106824791		681111
			1021666 		132208218		1021666
			1362221 		144856874		1362221
			1702777 		152931756		1702777
			2043332 		164940760		2043332
			2383888 		178662943		2383888
			2724443 		190381699		2724443
			3064998 		199993277		3064998
			3405554 		211764305		3405554
			3746109 		231107293		3746109
			4086664 		237462093		4086664
			4427220 		241699507		4427220
			4767775 		246905464		4767775
			5108331 		252268977		5108331
			5448886 		257246078		5448886
			5789441 		261978211		5789441
			6129997 		266292888		6129997
			6470552 		268615580		6470552

	Indexes defined on the table:
	-----------------------------
	Name  :	SMALL_TAB_INDEX
	Schema:	SH2 
		Unique Rule:                                  	Unique key index
		Used in Operator:                             	Yes
		Page Fetch Pairs:                             	Available
		Number of Columns:                            	1 
		Index Leaf Pages:                             	30813
		Index Tree Levels:                            	3 
		Index First Key Cardinality:                  	6470552
		Index Full Key Cardinality:                   	6470552
		Index Cluster Ratio:                          	-1 
		Index Cluster Factor:                         	1.000000 
		Time of Creation:                             	2016-09-09-01.21.37.850007
		Last Statistics Update:                       	2016-09-09-01.21.43.373004
		Index Sequential Pages:                       	30812
		Index First 2 Keys Cardinality:               	-1
		Index First 3 Keys Cardinality:               	-1
		Index First 4 Keys Cardinality:               	-1
		Index Avg Gap between Sequences:              	0.000000 
		Fetch Avg Gap between Sequences:              	-1.000000 
		Index Avg Sequential Pages:                   	30812.000000 
		Fetch Avg Sequential Pages:                   	-1.000000 
		Index Avg Random Pages:                       	0.000000 
		Fetch Avg Random Pages:                       	-1.000000 
		Index RID Count:                              	6470552
		Index Deleted RID Count:                      	0
		Index Empty Leaf Pages:                       	0
		Avg Partition Cluster Ratio:                  	-1 
		Avg Partition Cluster Factor:                 	-1.000000 
		Data Partition Cluster Factor:                	1.000000 
		Data Partition Page Fetch Pairs:              	Not Available

		Page Fetch Pairs information:
		-----------------------------
		Number of Page Fetch Pairs:                   	11 

				Buffer Size		Page Fetches
		--------------------------------------------------------
		Pair 1:  	100			29031
		Pair 2:  	2316			29031
		Pair 3:  	5790			29031
		Pair 4:  	9264			29031
		Pair 5:  	12738			29031
		Pair 6:  	16212			29031
		Pair 7:  	19686			29031
		Pair 8:  	23160			29031
		Pair 9:  	26634			29031
		Pair 10:  	29031			29031
		Pair 11:  	29031			29031


Третий запрос ВСЕ строки, но иначе (через IN):
Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
574.
575.
576.
577.
578.
579.
580.
581.
582.
583.
584.
585.
586.
587.
588.
589.
590.
591.
592.
593.
594.
595.
596.
597.
598.
599.
600.
601.
602.
603.
604.
605.
606.
607.
608.
609.
610.
611.
612.
613.
614.
615.
616.
617.
618.
619.
620.
621.
622.
623.
624.
625.
626.
627.
628.
629.
630.
631.
632.
633.
634.
635.
636.
637.
638.
639.
640.
641.
642.
643.
644.
645.
646.
647.
648.
649.
650.
651.
652.
653.
654.
655.
656.
657.
658.
659.
660.
661.
662.
663.
664.
665.
666.
667.
668.
669.
670.
671.
672.
673.
674.
675.
676.
677.
678.
679.
680.
681.
682.
683.
684.
685.
686.
687.
688.
689.
690.
691.
692.
693.
694.
695.
696.
697.
698.
699.
700.
701.
702.
703.
704.
705.
706.
707.
708.
709.
710.
711.
712.
713.
714.
715.
716.
717.
718.
719.
720.
721.
722.
723.
724.
725.
726.
727.
728.
729.
730.
731.
732.
733.
734.
735.
736.
737.
738.
739.
740.
741.
742.
743.
744.
745.
746.
747.
748.
749.
750.
751.
752.
753.
754.
755.
756.
757.
758.
759.
760.
761.
762.
763.
764.
765.
766.
767.
768.
769.
770.
771.
772.
773.
774.
775.
776.
777.
778.
779.
780.
781.
782.
783.
784.
785.
DB2 Universal Database Version 9.7, 5622-044 (c) Copyright IBM Corp. 1991, 2009
Licensed Material - Program Property of IBM
IBM DATABASE 2 Explain Table Format Tool



******************** EXPLAIN INSTANCE ********************

DB2_VERSION:       09.07.8
SOURCE_NAME:       SQLC2H23
SOURCE_SCHEMA:     NULLID  
SOURCE_VERSION:      
EXPLAIN_TIME:      2016-10-18-14.27.19.268001
EXPLAIN_REQUESTER: SH1  

Database Context:
----------------
	Parallelism:          None
	CPU Speed:            3,306410e-007
	Comm Speed:           0
	Buffer Pool size:     74211200
	Sort Heap size:       1019
	Database Heap size:   300000
	Lock List size:       8398150
	Maximum Lock List:    98
	Average Applications: 50
	Locks Available:      263365984

Package Context:
---------------
	SQL Type:           Dynamic
	Optimization Level: 5
	Blocking:           Block All Cursors
	Isolation Level:    Uncommitted Read



---------------- STATEMENT 1  SECTION 203 ----------------
	QUERYNO:       1
	QUERYTAG:                          
	Statement Type:   Select
	Updatable:        No
	Deletable:        No
	Query Degree:     1

Original Statement:
------------------
SELECT C1_ID, C2_HISTORY_DATE, PAY_STATUS 
FROM SH1.BIG_TAB 
WHERE C1_ID in 
   (select C1_ID 
   from SH2.SMALL_TAB) 
     WITH UR


Optimized Statement:
-------------------
SELECT Q2.C1_ID AS "C1_ID", Q2.C2_HISTORY_DATE AS "C2_HISTORY_DATE", Q2.PAY_STATUS AS 
        "PAY_STATUS" 
FROM SH2.SMALL_TAB AS Q1, SH1.BIG_TAB AS Q2 
WHERE (Q2.C1_ID = Q1.C1_ID)

Access Plan:
-----------
	Total Cost: 		2,36238e+008
	Query Degree:		1

               Rows 
              RETURN
              (   1)
               Cost 
                I/O 
                |
           1,69059e+008 
              ^NLJOIN
              (   2)
           2,36238e+008 
           8,67083e+007 
         /------+-------\
  5,24234e+009         0,0322488 
     TBSCAN             IXSCAN
     (   3)             (   4)
  1,56039e+008          18,1524 
  8,66775e+007             2 
       |                  |
  5,24234e+009       6,47055e+006 
 TABLE: SH1      INDEX: SH2 
 BIG_TAB   SMALL_TAB_INDEX
       Q2                 Q1



Extended Diagnostic Information:
--------------------------------

No extended Diagnostic Information for this statement.


Plan Details:
-------------


	1) RETURN: (Return Result)
		Cumulative Total Cost: 		2,36238e+008
		Cumulative CPU Cost: 		2,51275e+014
		Cumulative I/O Cost: 		8,67083e+007
		Cumulative Re-Total Cost: 	2,35959e+008
		Cumulative Re-CPU Cost: 	2,51275e+014
		Cumulative Re-I/O Cost: 	8,66775e+007
		Cumulative First Row Cost: 	32,3724
		Estimated Bufferpool Buffers: 	8,67083e+007

		Arguments:
		---------
		BLDLEVEL: (Build level)
			DB2 v9.7.800.717 : s130316
		HEAPUSE : (Maximum Statement Heap Usage)
			96 Pages
		PREPTIME: (Statement prepare time)
			         5 milliseconds
		STMTHEAP: (Statement heap size)
			4096

		Input Streams:
		-------------
			5) From Operator #2

				Estimated number of rows: 	1,69059e+008
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.PAY_STATUS+Q3.C2_HISTORY_DATE+Q3.C1_ID


	2) NLJOIN: (Nested Loop Join)
		Cumulative Total Cost: 		2,36238e+008
		Cumulative CPU Cost: 		2,51275e+014
		Cumulative I/O Cost: 		8,67083e+007
		Cumulative Re-Total Cost: 	2,35959e+008
		Cumulative Re-CPU Cost: 	2,51275e+014
		Cumulative Re-I/O Cost: 	8,66775e+007
		Cumulative First Row Cost: 	32,3724
		Estimated Bufferpool Buffers: 	8,67083e+007

		Arguments:
		---------
		EARLYOUT: (Early Out flag)
			LEFT
		FETCHMAX: (Override for FETCH MAXPAGES)
			IGNORE
		ISCANMAX: (Override for ISCAN MAXPAGES)
			IGNORE

		Predicates:
		----------
		2) Predicate used in Join, 
			Comparison Operator: 		Equal (=)
			Subquery Input Required: 	No
			Filter Factor: 			4,98394e-009

			Predicate Text:
			--------------
			(Q2.C1_ID = Q1.C1_ID)



		Input Streams:
		-------------
			2) From Operator #3

				Estimated number of rows: 	5,24234e+009
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.PAY_STATUS+Q2.C2_HISTORY_DATE+Q2.C1_ID

			4) From Operator #4

				Estimated number of rows: 	0,0322488
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q1.C1_ID(A)


		Output Streams:
		--------------
			5) To Operator #1

				Estimated number of rows: 	1,69059e+008
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.PAY_STATUS+Q3.C2_HISTORY_DATE+Q3.C1_ID


	3) TBSCAN: (Table Scan)
		Cumulative Total Cost: 		1,56039e+008
		Cumulative CPU Cost: 		9,56255e+012
		Cumulative I/O Cost: 		8,66775e+007
		Cumulative Re-Total Cost: 	1,56039e+008
		Cumulative Re-CPU Cost: 	9,56255e+012
		Cumulative Re-I/O Cost: 	8,66775e+007
		Cumulative First Row Cost: 	12,8677
		Estimated Bufferpool Buffers: 	8,66775e+007

		Arguments:
		---------
		JN INPUT: (Join input leg)
			OUTER
		MAXPAGES: (Maximum pages for prefetch)
			ALL
		PREFETCH: (Type of Prefetch)
			SEQUENTIAL
		ROWLOCK : (Row Lock intent)
			NONE
		SCANDIR : (Scan Direction)
			FORWARD
		SPEED   : (Assumed speed of scan, in sharing structures)
			SLOW
		TABLOCK : (Table Lock intent)
			INTENT NONE
		TBISOLVL: (Table access Isolation Level)
			UNCOMMITTED READ
		THROTTLE: (Scan may be throttled, for scan sharing)
			TRUE
		VISIBLE : (May be included in scan sharing structures)
			TRUE
		WRAPPING: (Scan may start anywhere and wrap)
			TRUE

		Input Streams:
		-------------
			1) From Object SH1.BIG_TAB

				Estimated number of rows: 	5,24234e+009
				Number of columns: 		4
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.$RID$+Q2.PAY_STATUS+Q2.C2_HISTORY_DATE+Q2.C1_ID


		Output Streams:
		--------------
			2) To Operator #2

				Estimated number of rows: 	5,24234e+009
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.PAY_STATUS+Q2.C2_HISTORY_DATE+Q2.C1_ID


	4) IXSCAN: (Index Scan)
		Cumulative Total Cost: 		18,1524
		Cumulative CPU Cost: 		97968,7
		Cumulative I/O Cost: 		2
		Cumulative Re-Total Cost: 	9,07637
		Cumulative Re-CPU Cost: 	49507,7
		Cumulative Re-I/O Cost: 	1
		Cumulative First Row Cost: 	18,1524
		Estimated Bufferpool Buffers: 	30815

		Arguments:
		---------
		JN INPUT: (Join input leg)
			INNER
		MAXPAGES: (Maximum pages for prefetch)
			1
		PREFETCH: (Type of Prefetch)
			NONE
		ROWLOCK : (Row Lock intent)
			NONE
		SCANDIR : (Scan Direction)
			FORWARD
		TABLOCK : (Table Lock intent)
			INTENT NONE
		TBISOLVL: (Table access Isolation Level)
			UNCOMMITTED READ

		Predicates:
		----------
		2) Start Key Predicate, 
			Comparison Operator: 		Equal (=)
			Subquery Input Required: 	No
			Filter Factor: 			4,98394e-009

			Predicate Text:
			--------------
			(Q2.C1_ID = Q1.C1_ID)


		2) Stop Key Predicate, 
			Comparison Operator: 		Equal (=)
			Subquery Input Required: 	No
			Filter Factor: 			4,98394e-009

			Predicate Text:
			--------------
			(Q2.C1_ID = Q1.C1_ID)



		Input Streams:
		-------------
			3) From Object SH2.SMALL_TAB_INDEX

				Estimated number of rows: 	6,47055e+006
				Number of columns: 		2
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q1.C1_ID(A)+Q1.$RID$


		Output Streams:
		--------------
			4) To Operator #2

				Estimated number of rows: 	0,0322488
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q1.C1_ID(A)


Objects Used in Access Plan:
---------------------------

	Schema: SH2 
	Name: 	SMALL_TAB
	Type: 	Table (reference only)

	Schema: SH2 
	Name: 	SMALL_TAB_INDEX
	Type: 	Index

	Schema: SH1  
	Name: 	BIG_TAB
	Type: 	Table

Base Table For Index Not Already Shown:
---------------------------------------

	Schema: SH2 
	Name: 	SMALL_TAB
			Tablespace name: 		GVAPTABS
			Tablespace overhead: 		9,000000
			Tablespace transfer rate: 	0,060000
			Prefetch page count: 		-1
			Container extent page count: 	32

			Long tablespace name: 		GVAPTABS


Extended Statistics Information:
--------------------------------

Tablespace Context:
-------------------
		Name:                                         	T_H_TS_IDX
		Overhead:                                     	12.670000 
		Transfer Rate:                                	0.180000 
		Prefetch Size:                                	1920 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

		Name:                                         	T_H_TS_TBLS     
		Overhead:                                     	12.670000 
		Transfer Rate:                                	0.180000 
		Prefetch Size:                                	1920 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

		Name:                                         	GVAPTABS          
		Overhead:                                     	9.000000 
		Transfer Rate:                                	0.060000 
		Prefetch Size:                                	192 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

Base Table Statistics:
----------------------
Name  : 	BIG_TAB
Schema: 	SH1  
		Number of Columns:                            	9 
		Number of Pages with Rows:                    	86677492
		Number of Pages:                              	86677492
		Number of Rows:                               	5242341755
		Table Overflow Record Count:                  	0
		Width of Rows:                                	44 
		Time of Creation:                             	2015-05-02-21.32.08.419004
		Last Statistics Update:                       	2016-10-12-11.06.17.653000
		Primary Tablespace:                           	T_H_TS_TBLS     
		Tablespace for Indexes:                       	T_H_TS_IDX
		Tablespace for Long Data:                     	NULLP
		Number of Referenced Columns:                 	3 
		Number of Indexes:                            	1 
		Volatile Table:                               	No
		Number of Active Blocks:                      	-1
		Number of Column Groups:                      	0 
		Number of Data Partitions:                    	1 
		Average Row Compression Ratio:                	-1.000000 
		Percent Rows Compressed:                      	-1.000000 
		Average Compressed Row Size:                  	-1 
		Statistics Type:                              	U

	Column Information:
	--------------------
		Number:                                       	4 
		Name:                                         	PAY_STATUS
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	SMALLINT
			Maximum column length:                        	2 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	11
			Average column length:                        	2 
			Number of most frequent values:               	10 
			Number of quantiles:                          	14 
			Second highest data value:                    	2052
			Second lowest data value:                     	2025
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Frequency Statistics:
			Valcount	Value 
			--------------------------------
			-226909440 		2022		
			335509920 		2025		
			314540544 		2043		
			199209008 		2037		
			110089192 		2028		
			73392800 		2031		
			73392800 		2034		
			31454056 		2052		
			26211712 		2040		
			10484685 		2046		

			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			0 		2022		0
			-226909440 		2022		0
			-158759168 		2025		0
			48313344 		2025		0
			119085056 		2028		0
			187235840 		2028		0
			255385600 		2031		0
			326157824 		2034		0
			394308096 		2037		0
			533230080 		2037		0
			601380864 		2043		0
			879224832 		2043		0
			947374459 		2052		0
			947374459 		2052		0

	Column Information:
	--------------------
		Number:                                       	2 
		Name:                                         	C2_HISTORY_DATE
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	DATE
			Maximum column length:                        	4 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	3776
			Average column length:                        	4 
			Number of most frequent values:               	10 
			Number of quantiles:                          	20 
			Second highest data value:                    	2016-09-30
			Second lowest data value:                     	1998-03-01
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Frequency Statistics:
			Valcount	Value 
			--------------------------------
			20969370 		2013-12-01		
			18348200 		2015-03-24		
			15727028 		2012-01-01		
			15727028 		2012-07-01		
			15727028 		2014-06-01		
			15727028 		2014-11-30		
			15727028 		2015-01-14		
			15727028 		2015-05-14		
			15727028 		2016-02-13		
			15727028 		2016-07-01		

			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			2621171 		2006-01-01		0
			275222976 		2009-08-08		0
			553067136 		2011-03-25		0
			838774784 		2012-01-01		0
			1111376640 		2012-07-01		0
			1381357184 		2012-12-19		0
			1656580352 		2013-06-01		0
			1931803264 		2013-10-01		0
			-2087941120 		2014-01-22		0
			-1810096896 		2014-05-27		0
			-1532252928 		2014-08-21		0
			-1254408960 		2014-12-15		0
			-984427776 		2015-03-11		0
			-709204736 		2015-05-31		0
			-431360768 		2015-08-29		0
			-156137984 		2015-11-27		0
			121705984 		2016-02-06		0
			396929024 		2016-04-09		0
			672152064 		2016-06-13		0
			947374459 		2016-09-01		0

	Column Information:
	--------------------
		Number:                                       	1 
		Name:                                         	C1_ID
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	BIGINT
			Maximum column length:                        	8 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	200644459
			Average column length:                        	8 
			Number of most frequent values:               	10 
			Number of quantiles:                          	20 
			Second highest data value:                    	268783998
			Second lowest data value:                     	1067929
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Frequency Statistics:
			Valcount	Value 
			--------------------------------
			1299 		36438362		
			1288 		36447884		
			1131 		33866795		
			1125 		32505228		
			1112 		33812528		
			1106 		84402767		
			1084 		78760604		
			1083 		41686576		
			1077 		33504966		
			1074 		83684924		

			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			9 		1067928		1
			-1535840067 		148562089		96135473
			-1535839970 		148562090		96135474
			-1259927333 		156774640		103673316
			-1259927325 		156774641		103673317
			-984014650 		166080005		112142940
			-984014573 		166080006		112142941
			-708101903 		176682081		121106182
			-708101879 		176682082		121106183
			-432189190 		185813489		129730788
			-432189060 		185813490		129730789
			-156276450 		196955705		139491342
			-156276427 		196955706		139491343
			119636278 		208728225		149829902
			119636290 		208728226		149829903
			395549005 		226710331		162637745
			395549032 		226710332		162637746
			671461724 		243685423		178698359
			671461737 		243685424		178698360
			947374459 		268783999		200644459

	Indexes defined on the table:
	-----------------------------
	Name  :	BIG_TAB_PK
	Schema:	SH1  
		Unique Rule:                                  	Primary key index
		Used in Operator:                             	No
		Page Fetch Pairs:                             	Available
		Number of Columns:                            	3 
		Index Leaf Pages:                             	57207556
		Index Tree Levels:                            	5 
		Index First Key Cardinality:                  	200644459
		Index Full Key Cardinality:                   	5242341755
		Index Cluster Ratio:                          	-1 
		Index Cluster Factor:                         	0.686509 
		Time of Creation:                             	2015-05-02-21.32.08.528002
		Last Statistics Update:                       	2016-10-12-11.06.17.653000
		Index Sequential Pages:                       	28302903
		Index First 2 Keys Cardinality:               	5241031435
		Index First 3 Keys Cardinality:               	5242341755
		Index First 4 Keys Cardinality:               	-1
		Index Avg Gap between Sequences:              	222959.000000 
		Fetch Avg Gap between Sequences:              	-1.000000 
		Index Avg Sequential Pages:                   	786191.000000 
		Fetch Avg Sequential Pages:                   	-1.000000 
		Index Avg Random Pages:                       	586145.000000 
		Fetch Avg Random Pages:                       	-1.000000 
		Index RID Count:                              	5321149234
		Index Deleted RID Count:                      	73837652
		Index Empty Leaf Pages:                       	55765
		Avg Partition Cluster Ratio:                  	-1 
		Avg Partition Cluster Factor:                 	-1.000000 
		Data Partition Cluster Factor:                	1.000000 
		Data Partition Page Fetch Pairs:              	Not Available

		Page Fetch Pairs information:
		-----------------------------
		Number of Page Fetch Pairs:                   	11 

				Buffer Size		Page Fetches
		--------------------------------------------------------
		Pair 1:  	100			1039302010
		Pair 2:  	350052			416376800
		Pair 3:  	9451404			206844276
		Pair 4:  	22053276			118214180
		Pair 5:  	31504680			98877758
		Pair 6:  	41656188			91777118
		Pair 7:  	53207904			89230548
		Pair 8:  	67910088			87250817
		Pair 9:  	86112792			86889824
		Pair 10:  	86462766			86462766
		Pair 11:  	86462766			86462766

Base Table Statistics:
----------------------
Name  : 	SMALL_TAB
Schema: 	SH2 
		Number of Columns:                            	1 
		Number of Pages with Rows:                    	29031
		Number of Pages:                              	29031
		Number of Rows:                               	6470552
		Table Overflow Record Count:                  	0
		Width of Rows:                                	14 
		Time of Creation:                             	2016-09-09-01.00.34.218012
		Last Statistics Update:                       	2016-09-09-01.21.43.373004
		Primary Tablespace:                           	GVAPTABS          
		Tablespace for Indexes:                       	GVAPTABS          
		Tablespace for Long Data:                     	NULLP
		Number of Referenced Columns:                 	1 
		Number of Indexes:                            	1 
		Volatile Table:                               	No
		Number of Active Blocks:                      	-1
		Number of Column Groups:                      	0 
		Number of Data Partitions:                    	1 
		Average Row Compression Ratio:                	-1.000000 
		Percent Rows Compressed:                      	-1.000000 
		Average Compressed Row Size:                  	-1 
		Statistics Type:                              	U

	Column Information:
	--------------------
		Number:                                       	1 
		Name:                                         	C1_ID
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	BIGINT
			Maximum column length:                        	8 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	6470552
			Average column length:                        	8 
			Number of most frequent values:               	-1 
			Number of quantiles:                          	20 
			Second highest data value:                    	268615579
			Second lowest data value:                     	1537590
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			1 		1142011		1
			340555 		87288721		340555
			681111 		106824791		681111
			1021666 		132208218		1021666
			1362221 		144856874		1362221
			1702777 		152931756		1702777
			2043332 		164940760		2043332
			2383888 		178662943		2383888
			2724443 		190381699		2724443
			3064998 		199993277		3064998
			3405554 		211764305		3405554
			3746109 		231107293		3746109
			4086664 		237462093		4086664
			4427220 		241699507		4427220
			4767775 		246905464		4767775
			5108331 		252268977		5108331
			5448886 		257246078		5448886
			5789441 		261978211		5789441
			6129997 		266292888		6129997
			6470552 		268615580		6470552

	Indexes defined on the table:
	-----------------------------
	Name  :	SMALL_TAB_INDEX
	Schema:	SH2 
		Unique Rule:                                  	Unique key index
		Used in Operator:                             	Yes
		Page Fetch Pairs:                             	Available
		Number of Columns:                            	1 
		Index Leaf Pages:                             	30813
		Index Tree Levels:                            	3 
		Index First Key Cardinality:                  	6470552
		Index Full Key Cardinality:                   	6470552
		Index Cluster Ratio:                          	-1 
		Index Cluster Factor:                         	1.000000 
		Time of Creation:                             	2016-09-09-01.21.37.850007
		Last Statistics Update:                       	2016-09-09-01.21.43.373004
		Index Sequential Pages:                       	30812
		Index First 2 Keys Cardinality:               	-1
		Index First 3 Keys Cardinality:               	-1
		Index First 4 Keys Cardinality:               	-1
		Index Avg Gap between Sequences:              	0.000000 
		Fetch Avg Gap between Sequences:              	-1.000000 
		Index Avg Sequential Pages:                   	30812.000000 
		Fetch Avg Sequential Pages:                   	-1.000000 
		Index Avg Random Pages:                       	0.000000 
		Fetch Avg Random Pages:                       	-1.000000 
		Index RID Count:                              	6470552
		Index Deleted RID Count:                      	0
		Index Empty Leaf Pages:                       	0
		Avg Partition Cluster Ratio:                  	-1 
		Avg Partition Cluster Factor:                 	-1.000000 
		Data Partition Cluster Factor:                	1.000000 
		Data Partition Page Fetch Pairs:              	Not Available

		Page Fetch Pairs information:
		-----------------------------
		Number of Page Fetch Pairs:                   	11 

				Buffer Size		Page Fetches
		--------------------------------------------------------
		Pair 1:  	100			29031
		Pair 2:  	2316			29031
		Pair 3:  	5790			29031
		Pair 4:  	9264			29031
		Pair 5:  	12738			29031
		Pair 6:  	16212			29031
		Pair 7:  	19686			29031
		Pair 8:  	23160			29031
		Pair 9:  	26634			29031
		Pair 10:  	29031			29031
		Pair 11:  	29031			29031


И вывод db2set -all
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
D:\>db2set -all
[e] DB2CODEPAGE=1251
[e] DB2COUNTRY=007
[e] DB2PATH=C:\Program Files\IBM\SQLLIB
[i] DB2_ATS_ENABLE=YES
[i] DB2_FMP_COMM_HEAPSZ=250000
[i] DB2INSTPROF=C:\ProgramData\IBM\DB2\DB2COPY1
[i] DB2_PARALLEL_IO=*:6
[g] DB2_EXTSECURITY=YES
[g] DB2_COMMON_APP_DATA_PATH=C:\ProgramData
[g] DB2SYSTEM=DB34
[g] DB2PATH=C:\Program Files\IBM\SQLLIB
[g] DB2INSTDEF=INST_D
[g] DB2COMM=TCPIP
[g] DB2ADMINSERVER=DB2DAS00
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39329075
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor Metelitsause-seПолучается, чтобы использовать MDC нам придется отказаться от уникальности первичного ключа и вместо (с1,с2,с3)
использовать индекс по c1. На уровне БД я проблем не виду, а вот со стороны софта придется смотреть.

Если я правильно понимаю то, что вы написали, то вы всё ещё не понимаете, что такое MDC.
Вы правильно понимаете, пока я не потрогаю руками сам - не пойму.
Читал ради интереса не более.

Относительно NLJOIN честно скажу, всего проверял 2 вида запроса
1) big_tab.c1_id=small_tab.c1_id
2) big_tab.c1_id ib (select c1_id from small_tab)
попытаться как то инача переписать запрос в голову не приходлило.
2 таблицы, что тут искать, хоть какая либо предварительная выборка была бы.
Подумать переписать, подумаю, попробую, может по частям может,
или как распаралелить.

Может попробовать в явном виде задать для заданного запроса план использования индекса?
Статистику недавно собирал, но может сторит пересмотреть профиль сбора статистики с распределением
по колонкам и индексам учавствующим в соединении?
А может DB2 не использует hash join по причине, что hash таблицы получаюся слишком большими?
Что то я совсем запутался ))
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39329145
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
use-seVictor Metelitsaпропущено...

Если я правильно понимаю то, что вы написали, то вы всё ещё не понимаете, что такое MDC.
Вы правильно понимаете, пока я не потрогаю руками сам - не пойму.
Читал ради интереса не более.


Ну там же на картинках так наглядно нарисовано. Смысл в MDC по колонке X - сгруппировать вместе данные с одинаковым значением X, они будут группироваться экстентами. Когда X оказывается уникальным, у вас на экстенте оказывается ровно одна запись. Эффект - дикое и безумное распухание таблицы.

Относительно NLJOIN честно скажу, всего проверял 2 вида запроса
1) big_tab.c1_id=small_tab.c1_id
2) big_tab.c1_id ib (select c1_id from small_tab)
попытаться как то инача переписать запрос в голову не приходлило.
2 таблицы, что тут искать, хоть какая либо предварительная выборка была бы.
Подумать переписать, подумаю, попробую, может по частям может,
или как распаралелить.

Может попробовать в явном виде задать для заданного запроса план использования индекса?
Статистику недавно собирал, но может сторит пересмотреть профиль сбора статистики с распределением
по колонкам и индексам учавствующим в соединении?
А может DB2 не использует hash join по причине, что hash таблицы получаюся слишком большими?
Что то я совсем запутался ))

NLJOIN или HASH JOIN выбирать - это, вообще-то, личное дело оптимизатора, хотя он может ошибиться. HASH JOIN, в принципе, работает без индексов (хотя он может воспользоваться индексом, "как таблицей"). Использование индекса "как индекса" влечёт за собой одноблочный доступ.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39329267
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
use-seА может DB2 не использует hash join по причине, что hash таблицы получаюся слишком большими?
Что то я совсем запутался ))
точно нет. он должен был взять маленькую таблицу/индекс, которая весит всего 116 мб, по ней в памяти построить хэш и фуллсканом читать большую, параллельно вычисляя хэш и выдавая заджоиненный результат на выход. ничего быстрее тут не выдумать, разве что индекс по тем трем полям, что нужны запросу.
а сейчас у вас NL долбит одноблочным чтением, не удивительно что это часы.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39329321
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
use-se,

HSJOIN не обязательно будет быстрее NLJOIN в этой ситуации - соединение по одном полю при наличии индекса в маленькой таблице по этому полю.
Если хотите сравнить, увеличьте значительно SORTHEAP и используйте оптимизационный профиль для указания использования HSJOIN.
Можете даже пока не запуская запрос посмотреть на цену запроса такого плана и сравнить его с текущим.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39329329
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!точно нет. он должен был взять маленькую таблицу/индекс, которая весит всего 116 мб, по ней в памяти построить хэш и фуллсканом читать большую, параллельно вычисляя хэш и выдавая заджоиненный результат на выход. ничего быстрее тут не выдумать, разве что индекс по тем трем полям, что нужны запросу.
а сейчас у вас NL долбит одноблочным чтением, не удивительно что это часы.
Про одноблочное чтение - это откуда взято?
В плане - табличное сканирование большой (внешней) таблицы. Метод доступа - sequential prefetch - это чтение экстентами (большими блоками).
Какой здесь смысл здесь таблицу из одного уникального проиндексированного поля засовывать в память, вычислять хэш для каждого уникального поля, чтобы потом по нему получать доступ?
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39329351
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там два запроса и два плана.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39329352
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже три.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39329356
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Берём первый:

Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
SELECT C1_ID, C2_HISTORY_DATE, PAY_STATUS 
FROM SH1.BIG_TAB 
WHERE C1_ID in 
   (select C1_ID 
   from SH2.SMALL_TAB 
   fetch first 10 rows only) 
     WITH UR


Optimized Statement:
-------------------
SELECT Q3.C1_ID AS "C1_ID", Q3.C2_HISTORY_DATE AS "C2_HISTORY_DATE", Q3.PAY_STATUS AS 
        "PAY_STATUS" 
FROM 
   (SELECT Q1.C1_ID 
   FROM SH2.SMALL_TAB AS Q1) AS Q2, SH1.BIG_TAB AS Q3 
WHERE (Q3.C1_ID = Q2.C1_ID)

Access Plan:
-----------
	Total Cost: 		972,537
	Query Degree:		1

               Rows 
              RETURN
              (   1)
               Cost 
                I/O 
                |
              261,275 
              NLJOIN
              (   2)
              972,537 
              370,949 
         /------+-------\
       10               26,1275 
     TBSCAN             FETCH 
     (   3)             (   4)
     38146,2            95,3037 
      29031               36 
       |              /---+----\
  6,47055e+006    26,1275   5,24234e+009 
 TABLE: SH2   RIDSCN   TABLE: SH1  
  SMALL_TAB   (   5)   BIG_TAB
       Q1         51,4576        Q3
                     4 
                    |
                  26,1275 
                  SORT  
                  (   6)
                  51,4571 
                     4 
                    |
                  26,1275 
                  IXSCAN
                  (   7)
                  51,4532 
                     4 
                    |
               5,24234e+009 
              INDEX: SH1  
             BIG_TAB_PK
                    Q3


Ведущая таблица SMALL_TAB. Для каждого C1_ID происходит поиск BIG_TAB_PK, накапливаются и сортируются RID'ы (до 512-штук), затем происходит PREFETCH из BIG_TAB. Как я помню, оно кластеризовано и потому это имеет смысл. А для поиска в индексе PREFETCH'а нет.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39329360
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Второй.

Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
Original Statement:
------------------
SELECT h.C1_ID, h.C2_HISTORY_DATE, h.PAY_STATUS 
FROM SH1.BIG_TAB h, SH2.SMALL_TAB l 
WHERE h.C1_ID = l.C1_ID 
     WITH UR


Optimized Statement:
-------------------
SELECT Q2.C1_ID AS "C1_ID", Q2.C2_HISTORY_DATE AS "C2_HISTORY_DATE", Q2.PAY_STATUS AS 
        "PAY_STATUS" 
FROM SH2.SMALL_TAB AS Q1, SH1.BIG_TAB AS Q2 
WHERE (Q2.C1_ID = Q1.C1_ID)

Access Plan:
-----------
	Total Cost: 		2,36238e+008
	Query Degree:		1

               Rows 
              RETURN
              (   1)
               Cost 
                I/O 
                |
           1,69059e+008 
              ^NLJOIN
              (   2)
           2,36238e+008 
           8,67083e+007 
         /------+-------\
  5,24234e+009         0,0322488 
     TBSCAN             IXSCAN
     (   3)             (   4)
  1,56039e+008          18,1524 
  8,66775e+007             2 
       |                  |
  5,24234e+009       6,47055e+006 
 TABLE: SH1      INDEX: SH2 
 BIG_TAB   SMALL_TAB_INDEX
       Q2                 Q1


Ведущая таблица BIG_TAB (а если на ней сделать MDC по C1_ID, то есть надежда, что она станет ведомой). Она префетчится, как и следовало ожидать. Для SMALL_TAB используется index only access. PREFETCH: (Type of Prefetch) NONE. Абстрактно хеш джойн кажется более выгодным. То ли таблица не влезла, то ли что ещё.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39329367
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark BarinsteinПро одноблочное чтение - это откуда взято?
В плане - табличное сканирование большой (внешней) таблицы. Метод доступа - sequential prefetch - это чтение экстентами (большими блоками).

я так понимаю в плане 2, на каждую запись большой таблицы идет IXSCAN: (Index Scan) с PREFETCH: NONE. сканирование реально один блок читает, т.е. тот самый долбеж. разве нет ?

Mark BarinsteinКакой здесь смысл здесь таблицу из одного уникального проиндексированного поля засовывать в память, вычислять хэш для каждого уникального поля, чтобы потом по нему получать доступ?
не так. в оракле из pk маленькой таблицы построился бы хеш в памяти, потом пошел бы фуллскан большой. по мере чтения большой создавался бы хеш по pk и сравнивался с хеш-таблицой в памяти. если ключ не найдет в баню, если найден, в результирующий курсор нужные поля. таким образом он мог бы хоть петабайты большой таблицы читать и получить результат за адекватное время. думаю с 347 гб таблицы реально минут за 20 справиться по такой схеме.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39329369
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
Name  : 	SMALL_TAB
Schema: 	SH2 
		Number of Columns:                            	1 
		Number of Pages with Rows:                    	29031
		Number of Pages:                              	29031
		Number of Rows:                               	6470552
Дв, не очень маленькая. 112 мег? И большая в 340 гиг? Кстати, интересно посмотреть на эффект alter table ... compress yes / reorg table ... resetdictionary / runstats on table with distribution and detailed indexes all.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39329372
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Разумеется", у DB2 хеш джойн есть. Возможно, настройки не позволили выделить нужное количество памяти.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39329375
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor MetelitsaДв, не очень маленькая. 112 мег?
согласен, не маленькая, а микроскопическая ...
особенно на фоне 384GB сервера, в которые у 112 мег есть хорошие шансы уместиться даже в виде хеша

Victor Metelitsa"Разумеется", у DB2 хеш джойн есть. Возможно, настройки не позволили выделить нужное количество памяти.
я конечно не высокого мнения о db2, но о наличии хэш джина подозревал :D
и тоже голосую за настройки памяти.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39329384
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor Metelitsa,

Способ, которым маленькая таблица попадёт в память, не так важен, ка кэффективность последующего доступа к ней.
При HSJOIN таблица полностью сканируется, причём да, большими блоками. Но делается это только для того, чтобы построить "хэш-индекс". А здесь таблица уже проиндексирована и, скорее всего, и так уже сидит в памяти вся. Насколько более или менее эффективен такой построенный индекс, чем существующий - вопрос стоимости, который оптимизатор должен оценить.

Ещё раз: не всегда для соединения "больших" таблиц HJOIN эффективнее NLJOIN или MSJOIN.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39329396
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И тогда мы вновь возвращаемся к вопросу в первом письме = почему "суммарная нагрузка на СХД очень мала (примерно 25 -35 MB/s)".
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39329402
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!Mark BarinsteinПро одноблочное чтение - это откуда взято?
В плане - табличное сканирование большой (внешней) таблицы. Метод доступа - sequential prefetch - это чтение экстентами (большими блоками).

я так понимаю в плане 2, на каждую запись большой таблицы идет IXSCAN: (Index Scan) с PREFETCH: NONE. сканирование реально один блок читает, т.е. тот самый долбеж. разве нет ?Нет, не правильно. Большая таблица (описание доступа в операторе 3) - слева, маленькая - справа.

авторMark BarinsteinКакой здесь смысл здесь таблицу из одного уникального проиндексированного поля засовывать в память, вычислять хэш для каждого уникального поля, чтобы потом по нему получать доступ?
не так. в оракле из pk маленькой таблицы построился бы хеш в памяти, потом пошел бы фуллскан большой. по мере чтения большой создавался бы хеш по pk и сравнивался с хеш-таблицой в памяти. если ключ не найдет в баню, если найден, в результирующий курсор нужные поля. таким образом он мог бы хоть петабайты большой таблицы читать и получить результат за адекватное время. думаю с 347 гб таблицы реально минут за 20 справиться по такой схеме.Здесь 2 варианта, в обоих - сканирование большой таблицы. Отличаются они только способом к маленькой таблице.
db2 сканирует большую, но не строит хеш-индекс по маленькой, а пользуется существующим индексом по ней.
Другой вариант мог бы быть сканированием маленькой, построением хеш-индекса в памяти, доступ к ней по каждой строке из большой не по существующему индексу (который тоже вполне себе может сесть в память и быть не менее эффективным), а по фактически новому (хеш-индексу), построенному в процессе работы.
Я бы вот так сразу безапелляционно не сказал, какой способ лучше для пета- или экза- байтов лучше подойдёт. У обоих методов есть плюсы и минусы, и это надо на цену запроса и на время выполнения смотреть.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39329411
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor MetelitsaИ тогда мы вновь возвращаемся к вопросу в первом письме = почему "суммарная нагрузка на СХД очень мала (примерно 25 -35 MB/s)".Да.
Здесь, наверное, можно просто простое сканирование на одну большую таблицу запустить (только с какой-нибудь агрегатной функцией, но чтоб было табличное сканированием плане), чтоб выяснить, на что система способна.
Можно и нужно также поэкспериментировать с block-based буфером.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39329413
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Альтернативный вариант получения HSJOIN без профиля - убить индекс на маленькую таблицу.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39329557
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark BarinsteinYo.!пропущено...
я так понимаю в плане 2, на каждую запись большой таблицы идет IXSCAN: (Index Scan) с PREFETCH: NONE. сканирование реально один блок читает, т.е. тот самый долбеж. разве нет ?Нет, не правильно. Большая таблица (описание доступа в операторе 3) - слева, маленькая - справа.

Долбёж может быть по маленькой таблице, а точнее, по индексу маленькой таблицы. Конечно, если он закеширован, то всё должно быть ОК. А закеширован ли он? Я не уверен ни в чём.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39329723
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
к сожалению, временно не смогу поводить тесты в том объеме, что ранее.
Понимаю, что звучит глупо, но это временно.
Буду выкладывать по готовности.
Спасибо.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39330062
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark BarinsteinАльтернативный вариант получения HSJOIN без профиля - убить индекс на маленькую таблицу.
Индекс на маленькую таблицу убил и получил новый план, но по прежнему с NL,
но маленькая идет первой и в большой ищется по индексу. Профиль не прописывал. Но это только план,
сам тест пока запустить не могу.
Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
574.
575.
576.
577.
578.
579.
580.
581.
582.
583.
584.
585.
586.
587.
588.
589.
590.
591.
592.
593.
594.
595.
596.
597.
598.
599.
600.
601.
602.
603.
604.
605.
606.
607.
608.
609.
610.
611.
612.
613.
614.
615.
616.
617.
618.
619.
620.
621.
622.
623.
624.
625.
626.
627.
628.
629.
630.
631.
632.
633.
634.
635.
636.
637.
638.
639.
640.
641.
642.
643.
644.
645.
646.
647.
648.
649.
650.
651.
652.
653.
654.
655.
656.
657.
658.
659.
660.
661.
662.
663.
664.
665.
666.
667.
668.
669.
670.
671.
672.
673.
674.
675.
676.
677.
678.
679.
680.
681.
682.
683.
684.
685.
686.
687.
688.
689.
690.
691.
692.
693.
694.
695.
696.
697.
698.
699.
700.
701.
702.
703.
704.
705.
706.
707.
708.
709.
710.
711.
712.
713.
714.
715.
716.
717.
718.
719.
720.
721.
722.
723.
724.
725.
726.
727.
728.
729.
730.
731.
732.
733.
734.
735.
736.
737.
738.
739.
740.
741.
742.
743.
744.
745.
746.
747.
748.
749.
750.
751.
752.
753.
754.
755.
756.
757.
758.
759.
760.
761.
762.
763.
764.
765.
766.
767.
768.
769.
770.
771.
772.
773.
774.
775.
776.
777.
778.
779.
780.
781.
782.
783.
784.
785.
786.
787.
788.
789.
790.
791.
792.
793.
794.
795.
796.
797.
798.
799.
800.
801.
802.
803.
804.
805.
806.
807.
808.
809.
810.
811.
812.
813.
814.
815.
816.
817.
818.
819.
820.
821.
822.
823.
824.
825.
826.
827.
828.
829.
830.
831.
832.
833.
834.
835.
836.
837.
838.
839.
840.
841.
842.
843.
844.
845.
846.
847.
848.
849.
850.
851.
852.
853.
854.
855.
856.
857.
858.
859.
860.
861.
862.
863.
864.
865.
866.
867.
868.
869.
870.
871.
872.
873.
874.
875.
876.
877.
878.
879.
880.
881.
882.
883.
884.
885.
886.
887.
888.
889.
890.
891.
892.
893.
894.
895.
896.
897.
898.
899.
900.
901.
902.
903.
904.
905.
906.
907.
908.
909.
DB2 Universal Database Version 9.7, 5622-044 (c) Copyright IBM Corp. 1991, 2009
Licensed Material - Program Property of IBM
IBM DATABASE 2 Explain Table Format Tool



******************** EXPLAIN INSTANCE ********************

DB2_VERSION:       09.07.8
SOURCE_NAME:       SQLC2H23
SOURCE_SCHEMA:     NULLID  
SOURCE_VERSION:      
EXPLAIN_TIME:      2016-10-19-14.27.50.161000
EXPLAIN_REQUESTER: DB2ADMIN

Database Context:
----------------
	Parallelism:          None
	CPU Speed:            3,306410e-007
	Comm Speed:           0
	Buffer Pool size:     74211200
	Sort Heap size:       256
	Database Heap size:   300000
	Lock List size:       4096
	Maximum Lock List:    98
	Average Applications: 50
	Locks Available:      128450

Package Context:
---------------
	SQL Type:           Dynamic
	Optimization Level: 5
	Blocking:           Block All Cursors
	Isolation Level:    Uncommitted Read



---------------- STATEMENT 1  SECTION 203 ----------------
	QUERYNO:       1
	QUERYTAG:                          
	Statement Type:   Select
	Updatable:        No
	Deletable:        No
	Query Degree:     1

Original Statement:
------------------
SELECT h.C1_ID, h.C2_HISTORY_DATE, h.PAY_STATUS 
FROM SH1.BIG_TAB h, SH2.SMALL_TAB l 
WHERE h.C1_ID = l.C1_ID 
     WITH UR


Optimized Statement:
-------------------
SELECT Q2.C1_ID AS "C1_ID", Q2.C2_HISTORY_DATE AS "C2_HISTORY_DATE", Q2.PAY_STATUS AS 
        "PAY_STATUS" 
FROM SH2.SMALL_TAB AS Q1, SH1.BIG_TAB AS Q2 
WHERE (Q2.C1_ID = Q1.C1_ID)

Access Plan:
-----------
	Total Cost: 		1,15692e+009
	Query Degree:		1

               Rows 
              RETURN
              (   1)
               Cost 
                I/O 
                |
           1,69059e+008 
              NLJOIN
              (   2)
           1,15692e+009 
           4,37287e+008 
         /------+-------\
  6,47055e+006          26,1275 
     TBSCAN             FETCH 
     (   3)             (   4)
     38146,2            95,3037 
      29031               36 
       |              /---+----\
  6,47055e+006    26,1275   5,24234e+009 
 TABLE: SH2   RIDSCN   TABLE: SH1  
  SMALL_TAB   (   5)   BIG_TAB
       Q1         51,4576        Q2
                     4 
                    |
                  26,1275 
                  SORT  
                  (   6)
                  51,4571 
                     4 
                    |
                  26,1275 
                  IXSCAN
                  (   7)
                  51,4532 
                     4 
                    |
               5,24234e+009 
              INDEX: SH1  
             BIG_TAB_PK
                    Q2



Extended Diagnostic Information:
--------------------------------

No extended Diagnostic Information for this statement.


Plan Details:
-------------


	1) RETURN: (Return Result)
		Cumulative Total Cost: 		1,15692e+009
		Cumulative CPU Cost: 		2,8679e+012
		Cumulative I/O Cost: 		4,37287e+008
		Cumulative Re-Total Cost: 	3,64762e+008
		Cumulative Re-CPU Cost: 	2,08065e+012
		Cumulative Re-I/O Cost: 	2,05764e+008
		Cumulative First Row Cost: 	73,3892
		Estimated Bufferpool Buffers: 	2,32969e+008

		Arguments:
		---------
		BLDLEVEL: (Build level)
			DB2 v9.7.800.717 : s130316
		HEAPUSE : (Maximum Statement Heap Usage)
			96 Pages
		PREPTIME: (Statement prepare time)
			     48871 milliseconds
		STMTHEAP: (Statement heap size)
			4096

		Input Streams:
		-------------
			9) From Operator #2

				Estimated number of rows: 	1,69059e+008
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.PAY_STATUS+Q3.C2_HISTORY_DATE+Q3.C1_ID


	2) NLJOIN: (Nested Loop Join)
		Cumulative Total Cost: 		1,15692e+009
		Cumulative CPU Cost: 		2,8679e+012
		Cumulative I/O Cost: 		4,37287e+008
		Cumulative Re-Total Cost: 	3,64762e+008
		Cumulative Re-CPU Cost: 	2,08065e+012
		Cumulative Re-I/O Cost: 	2,05764e+008
		Cumulative First Row Cost: 	73,3892
		Estimated Bufferpool Buffers: 	2,32969e+008

		Arguments:
		---------
		EARLYOUT: (Early Out flag)
			NONE
		FETCHMAX: (Override for FETCH MAXPAGES)
			IGNORE
		ISCANMAX: (Override for ISCAN MAXPAGES)
			IGNORE

		Predicates:
		----------
		2) Predicate used in Join, 
			Comparison Operator: 		Equal (=)
			Subquery Input Required: 	No
			Filter Factor: 			4,98394e-009

			Predicate Text:
			--------------
			(Q2.C1_ID = Q1.C1_ID)



		Input Streams:
		-------------
			2) From Operator #3

				Estimated number of rows: 	6,47055e+006
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q1.C1_ID

			8) From Operator #4

				Estimated number of rows: 	26,1275
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.PAY_STATUS+Q2.C2_HISTORY_DATE+Q2.C1_ID


		Output Streams:
		--------------
			9) To Operator #1

				Estimated number of rows: 	1,69059e+008
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.PAY_STATUS+Q3.C2_HISTORY_DATE+Q3.C1_ID


	3) TBSCAN: (Table Scan)
		Cumulative Total Cost: 		38146,2
		Cumulative CPU Cost: 		1,13216e+010
		Cumulative I/O Cost: 		29031
		Cumulative Re-Total Cost: 	3684,1
		Cumulative Re-CPU Cost: 	1,11423e+010
		Cumulative Re-I/O Cost: 	0
		Cumulative First Row Cost: 	9,0773
		Estimated Bufferpool Buffers: 	29031

		Arguments:
		---------
		JN INPUT: (Join input leg)
			OUTER
		MAXPAGES: (Maximum pages for prefetch)
			ALL
		PREFETCH: (Type of Prefetch)
			SEQUENTIAL
		ROWLOCK : (Row Lock intent)
			NONE
		SCANDIR : (Scan Direction)
			FORWARD
		SPEED   : (Assumed speed of scan, in sharing structures)
			SLOW
		TABLOCK : (Table Lock intent)
			INTENT NONE
		TBISOLVL: (Table access Isolation Level)
			UNCOMMITTED READ
		THROTTLE: (Scan may be throttled, for scan sharing)
			TRUE
		VISIBLE : (May be included in scan sharing structures)
			TRUE
		WRAPPING: (Scan may start anywhere and wrap)
			TRUE

		Input Streams:
		-------------
			1) From Object SH2.SMALL_TAB

				Estimated number of rows: 	6,47055e+006
				Number of columns: 		2
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q1.$RID$+Q1.C1_ID


		Output Streams:
		--------------
			2) To Operator #2

				Estimated number of rows: 	6,47055e+006
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q1.C1_ID


	4) FETCH : (Fetch)
		Cumulative Total Cost: 		95,3037
		Cumulative CPU Cost: 		404410
		Cumulative I/O Cost: 		36
		Cumulative Re-Total Cost: 	56,726
		Cumulative Re-CPU Cost: 	320514
		Cumulative Re-I/O Cost: 	32
		Cumulative First Row Cost: 	64,3119
		Estimated Bufferpool Buffers: 	1,39037e+009

		Arguments:
		---------
		JN INPUT: (Join input leg)
			INNER
		MAX RIDS: (Maximum RIDs per list prefetch request)
			512
		PREFETCH: (Type of Prefetch)
			LIST
		ROWLOCK : (Row Lock intent)
			NONE
		SPEED   : (Assumed speed of scan, in sharing structures)
			SLOW
		TABLOCK : (Table Lock intent)
			INTENT NONE
		TBISOLVL: (Table access Isolation Level)
			UNCOMMITTED READ
		THROTTLE: (Scan may be throttled, for scan sharing)
			FALSE
		VISIBLE : (May be included in scan sharing structures)
			FALSE
		WRAPPING: (Scan may start anywhere and wrap)
			FALSE

		Predicates:
		----------
		2) Sargable Predicate, 
			Comparison Operator: 		Equal (=)
			Subquery Input Required: 	No
			Filter Factor: 			4,98394e-009

			Predicate Text:
			--------------
			(Q2.C1_ID = Q1.C1_ID)



		Input Streams:
		-------------
			6) From Operator #5

				Estimated number of rows: 	26,1275
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.$RID$(A)

			7) From Object SH1.BIG_TAB

				Estimated number of rows: 	5,24234e+009
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.PAY_STATUS+Q2.C2_HISTORY_DATE+Q2.C1_ID


		Output Streams:
		--------------
			8) To Operator #2

				Estimated number of rows: 	26,1275
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.PAY_STATUS+Q2.C2_HISTORY_DATE+Q2.C1_ID


	5) RIDSCN: (Row Identifier Scan)
		Cumulative Total Cost: 		51,4576
		Cumulative CPU Cost: 		174047
		Cumulative I/O Cost: 		4
		Cumulative Re-Total Cost: 	12,8812
		Cumulative Re-CPU Cost: 	94401
		Cumulative Re-I/O Cost: 	0
		Cumulative First Row Cost: 	51,4571
		Estimated Bufferpool Buffers: 	5,70915e+007

		Arguments:
		---------
		NUMROWS : (Estimated number of rows)
			27

		Input Streams:
		-------------
			5) From Operator #6

				Estimated number of rows: 	26,1275
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.$RID$(A)


		Output Streams:
		--------------
			6) To Operator #4

				Estimated number of rows: 	26,1275
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.$RID$(A)


	6) SORT  : (Sort)
		Cumulative Total Cost: 		51,4571
		Cumulative CPU Cost: 		172760
		Cumulative I/O Cost: 		4
		Cumulative Re-Total Cost: 	12,8785
		Cumulative Re-CPU Cost: 	86332,1
		Cumulative Re-I/O Cost: 	0
		Cumulative First Row Cost: 	51,4571
		Estimated Bufferpool Buffers: 	5,70915e+007

		Arguments:
		---------
		DUPLWARN: (Duplicates Warning flag)
			TRUE
		NUMROWS : (Estimated number of rows)
			27
		ROWWIDTH: (Estimated width of rows)
			20
		SORTKEY : (Sort Key column)
			1: Q2.$RID$(A)
		TEMPSIZE: (Temporary Table Page Size)
			4096
		UNIQUE  : (Uniqueness required flag)
			TRUE

		Input Streams:
		-------------
			4) From Operator #7

				Estimated number of rows: 	26,1275
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.C1_ID(D)+Q2.C2_HISTORY_DATE(D)+Q2.$RID$


		Output Streams:
		--------------
			5) To Operator #5

				Estimated number of rows: 	26,1275
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.$RID$(A)


	7) IXSCAN: (Index Scan)
		Cumulative Total Cost: 		51,4532
		Cumulative CPU Cost: 		160793
		Cumulative I/O Cost: 		4
		Cumulative Re-Total Cost: 	12,8785
		Cumulative Re-CPU Cost: 	86332,1
		Cumulative Re-I/O Cost: 	1
		Cumulative First Row Cost: 	51,4383
		Estimated Bufferpool Buffers: 	5,70915e+007

		Arguments:
		---------
		MAXPAGES: (Maximum pages for prefetch)
			1
		PREFETCH: (Type of Prefetch)
			NONE
		ROWLOCK : (Row Lock intent)
			NONE
		SCANDIR : (Scan Direction)
			FORWARD
		TABLOCK : (Table Lock intent)
			INTENT NONE
		TBISOLVL: (Table access Isolation Level)
			UNCOMMITTED READ

		Predicates:
		----------
		2) Start Key Predicate, 
			Comparison Operator: 		Equal (=)
			Subquery Input Required: 	No
			Filter Factor: 			4,98394e-009

			Predicate Text:
			--------------
			(Q2.C1_ID = Q1.C1_ID)


		2) Stop Key Predicate, 
			Comparison Operator: 		Equal (=)
			Subquery Input Required: 	No
			Filter Factor: 			4,98394e-009

			Predicate Text:
			--------------
			(Q2.C1_ID = Q1.C1_ID)



		Input Streams:
		-------------
			3) From Object SH1.BIG_TAB_PK

				Estimated number of rows: 	5,24234e+009
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.C1_ID(D)+Q2.C2_HISTORY_DATE(D)+Q2.$RID$


		Output Streams:
		--------------
			4) To Operator #6

				Estimated number of rows: 	26,1275
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.C1_ID(D)+Q2.C2_HISTORY_DATE(D)+Q2.$RID$


Objects Used in Access Plan:
---------------------------

	Schema: SH1  
	Name: 	BIG_TAB_PK
	Type: 	Index

	Schema: SH1  
	Name: 	BIG_TAB
	Type: 	Table

	Schema: SH2 
	Name: 	SMALL_TAB
	Type: 	Table

Extended Statistics Information:
--------------------------------

Tablespace Context:
-------------------
		Name:                                         	T_H_TS_IDX
		Overhead:                                     	12.670000 
		Transfer Rate:                                	0.180000 
		Prefetch Size:                                	1920 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

		Name:                                         	T_H_TS_TBLS     
		Overhead:                                     	12.670000 
		Transfer Rate:                                	0.180000 
		Prefetch Size:                                	1920 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

		Name:                                         	GVAPTABS          
		Overhead:                                     	9.000000 
		Transfer Rate:                                	0.060000 
		Prefetch Size:                                	192 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

Base Table Statistics:
----------------------
Name  : 	SMALL_TAB
Schema: 	SH2 
		Number of Columns:                            	1 
		Number of Pages with Rows:                    	29031
		Number of Pages:                              	29031
		Number of Rows:                               	6470552
		Table Overflow Record Count:                  	0
		Width of Rows:                                	14 
		Time of Creation:                             	2016-09-09-01.00.34.218012
		Last Statistics Update:                       	2016-09-09-01.21.43.373004
		Primary Tablespace:                           	GVAPTABS          
		Tablespace for Indexes:                       	NULLP
		Tablespace for Long Data:                     	NULLP
		Number of Referenced Columns:                 	1 
		Number of Indexes:                            	0 
		Volatile Table:                               	No
		Number of Active Blocks:                      	-1
		Number of Column Groups:                      	0 
		Number of Data Partitions:                    	1 
		Average Row Compression Ratio:                	-1.000000 
		Percent Rows Compressed:                      	-1.000000 
		Average Compressed Row Size:                  	-1 
		Statistics Type:                              	U

	Column Information:
	--------------------
		Number:                                       	1 
		Name:                                         	C1_ID
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	BIGINT
			Maximum column length:                        	8 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	6470552
			Average column length:                        	8 
			Number of most frequent values:               	-1 
			Number of quantiles:                          	20 
			Second highest data value:                    	268615579
			Second lowest data value:                     	1537590
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			1 		1142011		1
			340555 		87288721		340555
			681111 		106824791		681111
			1021666 		132208218		1021666
			1362221 		144856874		1362221
			1702777 		152931756		1702777
			2043332 		164940760		2043332
			2383888 		178662943		2383888
			2724443 		190381699		2724443
			3064998 		199993277		3064998
			3405554 		211764305		3405554
			3746109 		231107293		3746109
			4086664 		237462093		4086664
			4427220 		241699507		4427220
			4767775 		246905464		4767775
			5108331 		252268977		5108331
			5448886 		257246078		5448886
			5789441 		261978211		5789441
			6129997 		266292888		6129997
			6470552 		268615580		6470552

Base Table Statistics:
----------------------
Name  : 	BIG_TAB
Schema: 	SH1  
		Number of Columns:                            	9 
		Number of Pages with Rows:                    	86677492
		Number of Pages:                              	86677492
		Number of Rows:                               	5242341755
		Table Overflow Record Count:                  	0
		Width of Rows:                                	44 
		Time of Creation:                             	2015-05-02-21.32.08.419004
		Last Statistics Update:                       	2016-10-12-11.06.17.653000
		Primary Tablespace:                           	T_H_TS_TBLS     
		Tablespace for Indexes:                       	T_H_TS_IDX
		Tablespace for Long Data:                     	NULLP
		Number of Referenced Columns:                 	3 
		Number of Indexes:                            	1 
		Volatile Table:                               	No
		Number of Active Blocks:                      	-1
		Number of Column Groups:                      	0 
		Number of Data Partitions:                    	1 
		Average Row Compression Ratio:                	-1.000000 
		Percent Rows Compressed:                      	-1.000000 
		Average Compressed Row Size:                  	-1 
		Statistics Type:                              	U

	Column Information:
	--------------------
		Number:                                       	4 
		Name:                                         	PAY_STATUS
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	SMALLINT
			Maximum column length:                        	2 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	11
			Average column length:                        	2 
			Number of most frequent values:               	10 
			Number of quantiles:                          	14 
			Second highest data value:                    	2052
			Second lowest data value:                     	2025
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Frequency Statistics:
			Valcount	Value 
			--------------------------------
			-226909440 		2022		
			335509920 		2025		
			314540544 		2043		
			199209008 		2037		
			110089192 		2028		
			73392800 		2031		
			73392800 		2034		
			31454056 		2052		
			26211712 		2040		
			10484685 		2046		

			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			0 		2022		0
			-226909440 		2022		0
			-158759168 		2025		0
			48313344 		2025		0
			119085056 		2028		0
			187235840 		2028		0
			255385600 		2031		0
			326157824 		2034		0
			394308096 		2037		0
			533230080 		2037		0
			601380864 		2043		0
			879224832 		2043		0
			947374459 		2052		0
			947374459 		2052		0

	Column Information:
	--------------------
		Number:                                       	2 
		Name:                                         	C2_HISTORY_DATE
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	DATE
			Maximum column length:                        	4 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	3776
			Average column length:                        	4 
			Number of most frequent values:               	10 
			Number of quantiles:                          	20 
			Second highest data value:                    	2016-09-30
			Second lowest data value:                     	1998-03-01
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Frequency Statistics:
			Valcount	Value 
			--------------------------------
			20969370 		2013-12-01		
			18348200 		2015-03-24		
			15727028 		2012-01-01		
			15727028 		2012-07-01		
			15727028 		2014-06-01		
			15727028 		2014-11-30		
			15727028 		2015-01-14		
			15727028 		2015-05-14		
			15727028 		2016-02-13		
			15727028 		2016-07-01		

			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			2621171 		2006-01-01		0
			275222976 		2009-08-08		0
			553067136 		2011-03-25		0
			838774784 		2012-01-01		0
			1111376640 		2012-07-01		0
			1381357184 		2012-12-19		0
			1656580352 		2013-06-01		0
			1931803264 		2013-10-01		0
			-2087941120 		2014-01-22		0
			-1810096896 		2014-05-27		0
			-1532252928 		2014-08-21		0
			-1254408960 		2014-12-15		0
			-984427776 		2015-03-11		0
			-709204736 		2015-05-31		0
			-431360768 		2015-08-29		0
			-156137984 		2015-11-27		0
			121705984 		2016-02-06		0
			396929024 		2016-04-09		0
			672152064 		2016-06-13		0
			947374459 		2016-09-01		0

	Column Information:
	--------------------
		Number:                                       	1 
		Name:                                         	C1_ID
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	BIGINT
			Maximum column length:                        	8 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	200644459
			Average column length:                        	8 
			Number of most frequent values:               	10 
			Number of quantiles:                          	20 
			Second highest data value:                    	268783998
			Second lowest data value:                     	1067929
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Frequency Statistics:
			Valcount	Value 
			--------------------------------
			1299 		36438362		
			1288 		36447884		
			1131 		33866795		
			1125 		32505228		
			1112 		33812528		
			1106 		84402767		
			1084 		78760604		
			1083 		41686576		
			1077 		33504966		
			1074 		83684924		

			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			9 		1067928		1
			-1535840067 		148562089		96135473
			-1535839970 		148562090		96135474
			-1259927333 		156774640		103673316
			-1259927325 		156774641		103673317
			-984014650 		166080005		112142940
			-984014573 		166080006		112142941
			-708101903 		176682081		121106182
			-708101879 		176682082		121106183
			-432189190 		185813489		129730788
			-432189060 		185813490		129730789
			-156276450 		196955705		139491342
			-156276427 		196955706		139491343
			119636278 		208728225		149829902
			119636290 		208728226		149829903
			395549005 		226710331		162637745
			395549032 		226710332		162637746
			671461724 		243685423		178698359
			671461737 		243685424		178698360
			947374459 		268783999		200644459

	Indexes defined on the table:
	-----------------------------
	Name  :	BIG_TAB_PK
	Schema:	SH1  
		Unique Rule:                                  	Primary key index
		Used in Operator:                             	Yes
		Page Fetch Pairs:                             	Available
		Number of Columns:                            	3 
		Index Leaf Pages:                             	57207556
		Index Tree Levels:                            	5 
		Index First Key Cardinality:                  	200644459
		Index Full Key Cardinality:                   	5242341755
		Index Cluster Ratio:                          	-1 
		Index Cluster Factor:                         	0.686509 
		Time of Creation:                             	2015-05-02-21.32.08.528002
		Last Statistics Update:                       	2016-10-12-11.06.17.653000
		Index Sequential Pages:                       	28302903
		Index First 2 Keys Cardinality:               	5241031435
		Index First 3 Keys Cardinality:               	5242341755
		Index First 4 Keys Cardinality:               	-1
		Index Avg Gap between Sequences:              	222959.000000 
		Fetch Avg Gap between Sequences:              	-1.000000 
		Index Avg Sequential Pages:                   	786191.000000 
		Fetch Avg Sequential Pages:                   	-1.000000 
		Index Avg Random Pages:                       	586145.000000 
		Fetch Avg Random Pages:                       	-1.000000 
		Index RID Count:                              	5321149234
		Index Deleted RID Count:                      	73837652
		Index Empty Leaf Pages:                       	55765
		Avg Partition Cluster Ratio:                  	-1 
		Avg Partition Cluster Factor:                 	-1.000000 
		Data Partition Cluster Factor:                	1.000000 
		Data Partition Page Fetch Pairs:              	Not Available

		Page Fetch Pairs information:
		-----------------------------
		Number of Page Fetch Pairs:                   	11 

				Buffer Size		Page Fetches
		--------------------------------------------------------
		Pair 1:  	100			1039302010
		Pair 2:  	350052			416376800
		Pair 3:  	9451404			206844276
		Pair 4:  	22053276			118214180
		Pair 5:  	31504680			98877758
		Pair 6:  	41656188			91777118
		Pair 7:  	53207904			89230548
		Pair 8:  	67910088			87250817
		Pair 9:  	86112792			86889824
		Pair 10:  	86462766			86462766
		Pair 11:  	86462766			86462766



2) Сделал копию большой таблицы с секционированием на 20 партиций. На тестах скорость чтения
немного выше (40МБ/с), но в целом результат хуже. Эталонная выборка 2ч 30 минут, на партиционной почти 3 часа, но
возможно какие либо погрешности.
3) Запустил команду вида:
Код: plaintext
db2 select * from big_tab with ur > nul
, стабильно показывает 8МБ/с не больше, кажется немного странным, почему
4) Команда:
Код: plaintext
select count(c1_id), count(c2_history_date), count(pay_status) from big_tab_part with ur
читала со скоростью 450-550МБ/с, правда свалилась от арифм. переполнения, но оно и понятно (count_big).

Увеличить SORTHEAP без отключения STMM у меня не очень получилось )). Возможно стоит вообще подумать об отключении
STMM, но с другой стороны работает уже давно и дает какое то субъективное спокойствие (работает не трогай).

Когда снова появятся ресурсы, сделаю остальное:
а) Тестовю выгрузку по 1 пункту
б) MDC на большую таблицу
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39330133
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
use-se4) Команда:
Код: plaintext
select count(c1_id), count(c2_history_date), count(pay_status) from big_tab_part with ur
читала со скоростью 450-550МБ/с, правда свалилась от арифм. переполнения, но оно и понятно (count_big).

я же говорил NL долбит маленькую табличку одноблочным IXSCAN: (Index Scan)
добейся HASH JOIN и будет счастье. если результат ждешь дольше 30 минут, что-то не так.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39330149
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!use-se4) Команда:
Код: plaintext
select count(c1_id), count(c2_history_date), count(pay_status) from big_tab_part with ur
читала со скоростью 450-550МБ/с, правда свалилась от арифм. переполнения, но оно и понятно (count_big).

я же говорил NL долбит маленькую табличку одноблочным IXSCAN: (Index Scan)
добейся HASH JOIN и будет счастье. если результат ждешь дольше 30 минут, что-то не так.
Ок. Спасибо большое. Я понял Вас еще по первому письму и пытаюсь к этому прийти. Да и подсказали уже относительно SORTHEAP.
Ресурсы не всегда доступны для тестов и сейчас мне придется подождать.
Но у меня к Вам тоже вопрос, почему на разных СХД с разной производительностью (DS5100 & Storwize v7000)
одни и те-же времена выборки, а бывает и хуже? Так или иначе все равно приходится сканировать большую таблицу,
выходит узкое место не в СХД? Тогда где?
Если бы я видел хоть какое либо значительное потребление ресурсов, CPU к примеру, или еще чего.
Мне кажется, что в данный момент я не могу даже правильно задать вопрос, наметив направление.
Думаю как только будут результаты тестов, включас HS, будет проще.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39330161
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
use-seОк. Спасибо большое. Я понял Вас еще по первому письму и пытаюсь к этому прийти. Да и подсказали уже относительно SORTHEAP.
Ресурсы не всегда доступны для тестов и сейчас мне придется подождать.
Но у меня к Вам тоже вопрос, почему на разных СХД с разной производительностью (DS5100 & Storwize v7000)
одни и те-же времена выборки, а бывает и хуже? Так или иначе все равно приходится сканировать большую таблицу,
выходит узкое место не в СХД? Тогда где?
Если бы я видел хоть какое либо значительное потребление ресурсов, CPU к примеру, или еще чего.
Мне кажется, что в данный момент я не могу даже правильно задать вопрос, наметив направление.
Думаю как только будут результаты тестов, включас HS, будет проще.
не знаю как в db2, а в оракле мы врубаем трейс по которому все видно. с какой скорости читает и что читает. у меня часто такие эффекты были когда insert into select писал в таблицу с констреинтами и одноблочное чтение оказывается вообще долбит третью таблицу из-за foreign key. по трейсу все четко видно, где и что читает, каким способом. ничего не надо гадать.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39330166
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
use-se,

Создаем таблицу профилей, если еще нету
Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE SYSTOOLS.OPT_PROFILE 
( 
  SCHEMA VARCHAR(128) NOT NULL
, NAME VARCHAR(128) NOT NULL
, PROFILE BLOB (2M) NOT NULL
, PRIMARY KEY ( SCHEMA, NAME ) 
) IN SYSTOOLSPACE;


optprof.xml
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<?xml version="1.0" encoding="UTF-8"?>
<OPTPROFILE VERSION="9.1.0.0">

  <STMTPROFILE ID="Test Guidelines">
    <STMTKEY>
      <![CDATA[SELECT h.c1_id, h.c2_HISTORY_DATE, h.PAY_STATUS
FROM big_tab h, small_tab l
WHERE h.c1_id =l.c1_id
WITH UR]]>
    </STMTKEY>
    <OPTGUIDELINES>
      <HSJOIN>                                         
        <TBSCAN TABLE='h'/> 
        <TBSCAN TABLE='l'/>
      </HSJOIN>                                  
    </OPTGUIDELINES>
  </STMTPROFILE>
</OPTPROFILE>



optprof.txt"SH1","PROF1","optprof.xml"

q1.sql
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
-- запрос не будет выполняться, получим только план
set current explain mode explain;
set current explain snapshot explain;

-- Текст запроса должен быть такой же, как в xml файле
SELECT h.c1_id, h.c2_HISTORY_DATE, h.PAY_STATUS
FROM big_tab h, small_tab l
WHERE h.c1_id =l.c1_id
WITH UR
;

!db2exfmt -d DBNAME -1 -o exfmt.txt;

set current explain mode no;
set current explain snapshot no;


db2 "IMPORT FROM optprof.txt OF DEL MODIFIED BY LOBSINFILE INSERT_UPDATE INTO SYSTOOLS.OPT_PROFILE"
db2 "set current optimization profile SH1.PROF1"
db2 "flush optimization profile cache SH1.PROF1"
db2 -tf q1.sql

Покажите план из exfmt.txt
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39330171
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!я же говорил NL долбит маленькую табличку одноблочным IXSCAN: (Index Scan)
добейся HASH JOIN и будет счастье. если результат ждешь дольше 30 минут, что-то не так.Многоблочное чтение маленькой таблицы закончится в самом начале сразу после построения хэш-индекса.
Потом при скане большой таблицы вне зависимости от того, какой именно индекс будет использоваться - существующий или хэш - для каждой записи большой таблицы придется обращаться к одной из 5М записей по этому индексу, и тут уже никакого многоблочного обращения быть не может.
Даже если всё хозяйство для маленькой таблицы будет в памяти, это далеко не бесплатная операция. Именно поэтому, скорее всего, оно и не может быстрее сканировать большую таблицу - не может быстрее обращаться в маленькую по индексу, каким бы эффективным он ни был.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39330203
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
use-se3) Запустил команду вида:
Код: plaintext
db2 select * from big_tab with ur > nul
, стабильно показывает 8МБ/с не больше, кажется немного странным, почему
4) Команда:
Код: plaintext
select count(c1_id), count(c2_history_date), count(pay_status) from big_tab_part with ur
читала со скоростью 450-550МБ/с, правда свалилась от арифм. переполнения, но оно и понятно (count_big).Ничего странного. Прочитанное надо отдавать клиенту. Несмотря на то, что клиент локальный, оно просто не успевает передавать результат с такой скоростью, с которой могло бы читать. В 4 передавать большие объемы не надо, поэтому ничто читающего агента не тормозит.
use-seУвеличить SORTHEAP без отключения STMM у меня не очень получилось )). Возможно стоит вообще подумать об отключении
STMM, но с другой стороны работает уже давно и дает какое то субъективное спокойствие (работает не трогай).Трудно помочь с такой диагностикой проблемы - "не получилось". :)
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39330213
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark BarinsteinМногоблочное чтение маленькой таблицы закончится в самом начале сразу после построения хэш-индекса.
Потом при скане большой таблицы вне зависимости от того, какой именно индекс будет использоваться - существующий или хэш - для каждой записи большой таблицы придется обращаться к одной из 5М записей по этому индексу, и тут уже никакого многоблочного обращения быть не может.
Даже если всё хозяйство для маленькой таблицы будет в памяти, это далеко не бесплатная операция. Именно поэтому, скорее всего, оно и не может быстрее сканировать большую таблицу - не может быстрее обращаться в маленькую по индексу, каким бы эффективным он ни был.
не верю. в оракле бы
Yo.!не так. в оракле из pk маленькой таблицы построился бы хеш в памяти, потом пошел бы фуллскан большой. по мере чтения большой создавался бы хеш по pk и сравнивался с хеш-таблицой в памяти. если ключ не найдет в баню, если найден, в результирующий курсор нужные поля. таким образом он мог бы хоть петабайты большой таблицы читать и получить результат за адекватное время. думаю с 347 гб таблицы реально минут за 20 справиться по такой схеме.

читать с HDD большую и параллельно сверять с хеш-таблицой в фоне думаю уже десятилетия не проблема. имхо все упирается в ограничения ио
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39330217
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хеш-джойн на оракле тем больше выгоден по сравнению с индексом, чем больше строк в таблице, которая стала хеш-таблицей. При условии, что всё влезло в память и хеш-функция адекватна для встретившихся данных (ну, свою в Oracle/DB2 мы всё равно задать не можем). Потому что доступ осуществляется "сразу", без прохода по дереву. Не видно причин, почему на DB2 должно быть по-другому.

Смысл работы с хешем в том, чтобы индекс отменить, осуществлять не проход по страницам индекса с бинарным поиском на каждой, а доступ a la
x := хештаблица[хешфункция(искомыйключ)],
где x - это список найденных значений с одинаковым значением хешфункция(искомыйключ),
и при "хорошей" хешфункции его размер "обычно" должен быть 0 или 1.

Если поисками в small_tab перегружен процессор, можно подумать о параллельном выполнении сканирования big_tab.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39330223
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!читать с HDD большую и параллельно сверять с хеш-таблицой в фоне думаю уже десятилетия не проблема. имхо все упирается в ограничения ио

use-se4) Команда:

select count(c1_id), count(c2_history_date), count(pay_status) from big_tab_part with ur

читала со скоростью 450-550МБ/с, правда свалилась от арифм. переполнения, но оно и понятно (count_big).
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39330428
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor MetelitsaХеш-джойн на оракле тем больше выгоден по сравнению с индексом, чем больше строк в таблице, которая стала хеш-таблицей. При условии, что всё влезло в память и хеш-функция адекватна для встретившихся данных (ну, свою в Oracle/DB2 мы всё равно задать не можем). Потому что доступ осуществляется "сразу", без прохода по дереву. Не видно причин, почему на DB2 должно быть по-другому.

Смысл работы с хешем в том, чтобы индекс отменить, осуществлять не проход по страницам индекса с бинарным поиском на каждой, а доступ a la
x := хештаблица[хешфункция(искомыйключ)],
где x - это список найденных значений с одинаковым значением хешфункция(искомыйключ),
и при "хорошей" хешфункции его размер "обычно" должен быть 0 или 1.

Если поисками в small_tab перегружен процессор, можно подумать о параллельном выполнении сканирования big_tab.Логически это то же индексирование, только сделанное немного по другому. Поиск одного знчения из миллионов "сразу" не бывает при любом подходе. Заставить оптимизатор "присмотреться" к HS без профиля можно, значительно увеличив SORTHEAP, конечно.
Несколько агентов (intra-parallelism) должны, конечно, помочь. Но ТС писал, что это не особо помогает, хотя я бы убедился в том, что в его тестах параллелизм действительно работает (план запроса надо получать из package cache в этом случае).
В этом конкретном случае хорошо помогла бы DPF - обе таблицы распределяются по ключу соединения, соединение на каждом разделе локальное. Очень хорошо должно параллелизоваться...
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39330477
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinsteinuse-se,

Создаем таблицу профилей...
...

Покажите план из exfmt.txt
В таком варианте план подрос
Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
574.
575.
576.
577.
578.
579.
580.
581.
582.
583.
584.
585.
586.
587.
588.
589.
590.
591.
592.
593.
594.
595.
596.
597.
598.
599.
600.
601.
602.
603.
604.
605.
606.
607.
608.
609.
610.
611.
612.
613.
614.
615.
616.
617.
618.
619.
620.
621.
622.
623.
624.
625.
626.
627.
628.
629.
630.
631.
632.
633.
634.
635.
636.
637.
638.
639.
640.
641.
642.
643.
644.
645.
646.
647.
648.
649.
650.
651.
652.
653.
654.
655.
656.
657.
658.
659.
660.
661.
662.
663.
664.
665.
666.
667.
668.
669.
670.
671.
672.
673.
674.
675.
676.
677.
678.
679.
680.
681.
682.
683.
684.
685.
686.
687.
688.
689.
690.
691.
692.
693.
694.
695.
696.
697.
698.
699.
700.
701.
702.
703.
704.
705.
706.
707.
708.
709.
710.
711.
DB2 Universal Database Version 9.7, 5622-044 (c) Copyright IBM Corp. 1991, 2009
Licensed Material - Program Property of IBM
IBM DATABASE 2 Explain Table Format Tool



******************** EXPLAIN INSTANCE ********************

DB2_VERSION:       09.07.8
SOURCE_NAME:       SQLC2H23
SOURCE_SCHEMA:     NULLID  
SOURCE_VERSION:      
EXPLAIN_TIME:      2016-10-20-11.29.13.126007
EXPLAIN_REQUESTER: SH1  

Database Context:
----------------
	Parallelism:          None
	CPU Speed:            3,306410e-007
	Comm Speed:           0
	Buffer Pool size:     74211200
	Sort Heap size:       84
	Database Heap size:   300000
	Lock List size:       8398165
	Maximum Lock List:    98
	Average Applications: 50
	Locks Available:      263366448

Package Context:
---------------
	SQL Type:           Dynamic
	Optimization Level: 5
	Blocking:           Block All Cursors
	Isolation Level:    Uncommitted Read



---------------- STATEMENT 1  SECTION 201 ----------------
	QUERYNO:       2
	QUERYTAG:      CLP                 
	Statement Type:   Select
	Updatable:        No
	Deletable:        No
	Query Degree:     1

Profile Information:
--------------------
OPT_PROF: (Optimization Profile Name)
	SH1.PROF1
STMTPROF: (Statement Profile Name)
	Test Guidelines

Original Statement:
------------------
SELECT h.C1_ID, h.C2_HISTORY_DATE, h.PAY_STATUS 
FROM SH1.BIG_TAB h, SH2.SMALL_TAB l 
WHERE h.C1_ID = l.C1_ID 
     WITH UR


Optimized Statement:
-------------------
SELECT Q2.C1_ID AS "C1_ID", Q2.C2_HISTORY_DATE AS "C2_HISTORY_DATE", Q2.PAY_STATUS AS 
        "PAY_STATUS" 
FROM SH2.SMALL_TAB AS Q1, SH1.BIG_TAB AS Q2 
WHERE (Q2.C1_ID = Q1.C1_ID)

Access Plan:
-----------
	Total Cost: 		3,40282e+038
	Query Degree:		1

              Rows 
             RETURN
             (   1)
              Cost 
               I/O 
               |
          1,69059e+008 
             HSJOIN
             (   2)
          3,40282e+038 
          3,40282e+038 
         /-----+------\
  5,24234e+009     6,47055e+006 
     TBSCAN           TBSCAN
     (   3)           (   4)
  1,56039e+008        38146,2 
  8,66775e+007         29031 
       |                |
  5,24234e+009     6,47055e+006 
 TABLE: SH1    TABLE: SH2 
 BIG_TAB    SMALL_TAB
       Q2               Q1



Extended Diagnostic Information:
--------------------------------

No extended Diagnostic Information for this statement.


Plan Details:
-------------


	1) RETURN: (Return Result)
		Cumulative Total Cost: 		3,40282e+038
		Cumulative CPU Cost: 		3,40282e+038
		Cumulative I/O Cost: 		3,40282e+038
		Cumulative Re-Total Cost: 	3,40282e+038
		Cumulative Re-CPU Cost: 	3,40282e+038
		Cumulative Re-I/O Cost: 	3,40282e+038
		Cumulative First Row Cost: 	3,40282e+038
		Estimated Bufferpool Buffers: 	3,40282e+038

		Arguments:
		---------
		BLDLEVEL: (Build level)
			DB2 v9.7.800.717 : s130316
		HEAPUSE : (Maximum Statement Heap Usage)
			96 Pages
		PREPTIME: (Statement prepare time)
			        22 milliseconds
		STMTHEAP: (Statement heap size)
			4096

		Input Streams:
		-------------
			5) From Operator #2

				Estimated number of rows: 	1,69059e+008
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.PAY_STATUS+Q3.C2_HISTORY_DATE+Q3.C1_ID


	2) HSJOIN: (Hash Join)
		Cumulative Total Cost: 		3,40282e+038
		Cumulative CPU Cost: 		3,40282e+038
		Cumulative I/O Cost: 		3,40282e+038
		Cumulative Re-Total Cost: 	3,40282e+038
		Cumulative Re-CPU Cost: 	3,40282e+038
		Cumulative Re-I/O Cost: 	3,40282e+038
		Cumulative First Row Cost: 	3,40282e+038
		Estimated Bufferpool Buffers: 	3,40282e+038

		Arguments:
		---------
		BITFLTR : (Hash Join Bit Filter used)
			FALSE
		EARLYOUT: (Early Out flag)
			NONE
		HASHCODE: (Hash Code Size)
			24 BIT
		HASHTBSZ: (Number of hash table entries)
			6470552
		TEMPSIZE: (Temporary Table Page Size)
			4096
		TUPBLKSZ: (Tuple Block Size (bytes))
			16000

		Predicates:
		----------
		2) Predicate used in Join, 
			Comparison Operator: 		Equal (=)
			Subquery Input Required: 	No
			Filter Factor: 			4,98394e-009

			Predicate Text:
			--------------
			(Q2.C1_ID = Q1.C1_ID)



		Input Streams:
		-------------
			2) From Operator #3

				Estimated number of rows: 	5,24234e+009
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.PAY_STATUS+Q2.C2_HISTORY_DATE+Q2.C1_ID

			4) From Operator #4

				Estimated number of rows: 	6,47055e+006
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q1.C1_ID


		Output Streams:
		--------------
			5) To Operator #1

				Estimated number of rows: 	1,69059e+008
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.PAY_STATUS+Q3.C2_HISTORY_DATE+Q3.C1_ID


	3) TBSCAN: (Table Scan)
		Cumulative Total Cost: 		1,56039e+008
		Cumulative CPU Cost: 		9,56255e+012
		Cumulative I/O Cost: 		8,66775e+007
		Cumulative Re-Total Cost: 	1,56039e+008
		Cumulative Re-CPU Cost: 	9,56255e+012
		Cumulative Re-I/O Cost: 	8,66775e+007
		Cumulative First Row Cost: 	12,8677
		Estimated Bufferpool Buffers: 	8,66775e+007

		Arguments:
		---------
		JN INPUT: (Join input leg)
			OUTER
		MAXPAGES: (Maximum pages for prefetch)
			ALL
		PREFETCH: (Type of Prefetch)
			SEQUENTIAL
		ROWLOCK : (Row Lock intent)
			NONE
		SCANDIR : (Scan Direction)
			FORWARD
		SPEED   : (Assumed speed of scan, in sharing structures)
			FAST
		TABLOCK : (Table Lock intent)
			INTENT NONE
		TBISOLVL: (Table access Isolation Level)
			UNCOMMITTED READ
		THROTTLE: (Scan may be throttled, for scan sharing)
			TRUE
		VISIBLE : (May be included in scan sharing structures)
			TRUE
		WRAPPING: (Scan may start anywhere and wrap)
			TRUE

		Input Streams:
		-------------
			1) From Object SH1.BIG_TAB

				Estimated number of rows: 	5,24234e+009
				Number of columns: 		4
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.$RID$+Q2.PAY_STATUS+Q2.C2_HISTORY_DATE+Q2.C1_ID


		Output Streams:
		--------------
			2) To Operator #2

				Estimated number of rows: 	5,24234e+009
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.PAY_STATUS+Q2.C2_HISTORY_DATE+Q2.C1_ID


	4) TBSCAN: (Table Scan)
		Cumulative Total Cost: 		38146,2
		Cumulative CPU Cost: 		1,13216e+010
		Cumulative I/O Cost: 		29031
		Cumulative Re-Total Cost: 	3684,1
		Cumulative Re-CPU Cost: 	1,11423e+010
		Cumulative Re-I/O Cost: 	0
		Cumulative First Row Cost: 	9,0773
		Estimated Bufferpool Buffers: 	29031

		Arguments:
		---------
		JN INPUT: (Join input leg)
			INNER
		MAXPAGES: (Maximum pages for prefetch)
			ALL
		PREFETCH: (Type of Prefetch)
			SEQUENTIAL
		ROWLOCK : (Row Lock intent)
			NONE
		SCANDIR : (Scan Direction)
			FORWARD
		SPEED   : (Assumed speed of scan, in sharing structures)
			FAST
		TABLOCK : (Table Lock intent)
			INTENT NONE
		TBISOLVL: (Table access Isolation Level)
			UNCOMMITTED READ
		THROTTLE: (Scan may be throttled, for scan sharing)
			TRUE
		VISIBLE : (May be included in scan sharing structures)
			TRUE
		WRAPPING: (Scan may start anywhere and wrap)
			TRUE

		Input Streams:
		-------------
			3) From Object SH2.SMALL_TAB

				Estimated number of rows: 	6,47055e+006
				Number of columns: 		2
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q1.$RID$+Q1.C1_ID


		Output Streams:
		--------------
			4) To Operator #2

				Estimated number of rows: 	6,47055e+006
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q1.C1_ID


Objects Used in Access Plan:
---------------------------

	Schema: SH1  
	Name: 	BIG_TAB
	Type: 	Table

	Schema: SH2 
	Name: 	SMALL_TAB
	Type: 	Table

Extended Statistics Information:
--------------------------------

Tablespace Context:
-------------------
		Name:                                         	T_H_TS_IDX
		Overhead:                                     	12.670000 
		Transfer Rate:                                	0.180000 
		Prefetch Size:                                	1920 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

		Name:                                         	T_H_TS_TBLS     
		Overhead:                                     	12.670000 
		Transfer Rate:                                	0.180000 
		Prefetch Size:                                	1920 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

		Name:                                         	GVAPTABS          
		Overhead:                                     	9.000000 
		Transfer Rate:                                	0.060000 
		Prefetch Size:                                	192 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

Base Table Statistics:
----------------------
Name  : 	BIG_TAB
Schema: 	SH1  
		Number of Columns:                            	9 
		Number of Pages with Rows:                    	86677492
		Number of Pages:                              	86677492
		Number of Rows:                               	5242341755
		Table Overflow Record Count:                  	0
		Width of Rows:                                	44 
		Time of Creation:                             	2015-05-02-21.32.08.419004
		Last Statistics Update:                       	2016-10-12-11.06.17.653000
		Primary Tablespace:                           	T_H_TS_TBLS     
		Tablespace for Indexes:                       	T_H_TS_IDX
		Tablespace for Long Data:                     	NULLP
		Number of Referenced Columns:                 	3 
		Number of Indexes:                            	1 
		Volatile Table:                               	No
		Number of Active Blocks:                      	-1
		Number of Column Groups:                      	0 
		Number of Data Partitions:                    	1 
		Average Row Compression Ratio:                	-1.000000 
		Percent Rows Compressed:                      	-1.000000 
		Average Compressed Row Size:                  	-1 
		Statistics Type:                              	U

	Column Information:
	--------------------
		Number:                                       	4 
		Name:                                         	PAY_STATUS
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	SMALLINT
			Maximum column length:                        	2 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	11
			Average column length:                        	2 
			Number of most frequent values:               	10 
			Number of quantiles:                          	14 
			Second highest data value:                    	2052
			Second lowest data value:                     	2025
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Frequency Statistics:
			Valcount	Value 
			--------------------------------
			-226909440 		2022		
			335509920 		2025		
			314540544 		2043		
			199209008 		2037		
			110089192 		2028		
			73392800 		2031		
			73392800 		2034		
			31454056 		2052		
			26211712 		2040		
			10484685 		2046		

			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			0 		2022		0
			-226909440 		2022		0
			-158759168 		2025		0
			48313344 		2025		0
			119085056 		2028		0
			187235840 		2028		0
			255385600 		2031		0
			326157824 		2034		0
			394308096 		2037		0
			533230080 		2037		0
			601380864 		2043		0
			879224832 		2043		0
			947374459 		2052		0
			947374459 		2052		0

	Column Information:
	--------------------
		Number:                                       	2 
		Name:                                         	C2_HISTORY_DATE
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	DATE
			Maximum column length:                        	4 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	3776
			Average column length:                        	4 
			Number of most frequent values:               	10 
			Number of quantiles:                          	20 
			Second highest data value:                    	2016-09-30
			Second lowest data value:                     	1998-03-01
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Frequency Statistics:
			Valcount	Value 
			--------------------------------
			20969370 		2013-12-01		
			18348200 		2015-03-24		
			15727028 		2012-01-01		
			15727028 		2012-07-01		
			15727028 		2014-06-01		
			15727028 		2014-11-30		
			15727028 		2015-01-14		
			15727028 		2015-05-14		
			15727028 		2016-02-13		
			15727028 		2016-07-01		

			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			2621171 		2006-01-01		0
			275222976 		2009-08-08		0
			553067136 		2011-03-25		0
			838774784 		2012-01-01		0
			1111376640 		2012-07-01		0
			1381357184 		2012-12-19		0
			1656580352 		2013-06-01		0
			1931803264 		2013-10-01		0
			-2087941120 		2014-01-22		0
			-1810096896 		2014-05-27		0
			-1532252928 		2014-08-21		0
			-1254408960 		2014-12-15		0
			-984427776 		2015-03-11		0
			-709204736 		2015-05-31		0
			-431360768 		2015-08-29		0
			-156137984 		2015-11-27		0
			121705984 		2016-02-06		0
			396929024 		2016-04-09		0
			672152064 		2016-06-13		0
			947374459 		2016-09-01		0

	Column Information:
	--------------------
		Number:                                       	1 
		Name:                                         	C1_ID
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	BIGINT
			Maximum column length:                        	8 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	200644459
			Average column length:                        	8 
			Number of most frequent values:               	10 
			Number of quantiles:                          	20 
			Second highest data value:                    	268783998
			Second lowest data value:                     	1067929
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Frequency Statistics:
			Valcount	Value 
			--------------------------------
			1299 		36438362		
			1288 		36447884		
			1131 		33866795		
			1125 		32505228		
			1112 		33812528		
			1106 		84402767		
			1084 		78760604		
			1083 		41686576		
			1077 		33504966		
			1074 		83684924		

			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			9 		1067928		1
			-1535840067 		148562089		96135473
			-1535839970 		148562090		96135474
			-1259927333 		156774640		103673316
			-1259927325 		156774641		103673317
			-984014650 		166080005		112142940
			-984014573 		166080006		112142941
			-708101903 		176682081		121106182
			-708101879 		176682082		121106183
			-432189190 		185813489		129730788
			-432189060 		185813490		129730789
			-156276450 		196955705		139491342
			-156276427 		196955706		139491343
			119636278 		208728225		149829902
			119636290 		208728226		149829903
			395549005 		226710331		162637745
			395549032 		226710332		162637746
			671461724 		243685423		178698359
			671461737 		243685424		178698360
			947374459 		268783999		200644459

	Indexes defined on the table:
	-----------------------------
	Name  :	BIG_TAB_PK
	Schema:	SH1  
		Unique Rule:                                  	Primary key index
		Used in Operator:                             	No
		Page Fetch Pairs:                             	Available
		Number of Columns:                            	3 
		Index Leaf Pages:                             	57207556
		Index Tree Levels:                            	5 
		Index First Key Cardinality:                  	200644459
		Index Full Key Cardinality:                   	5242341755
		Index Cluster Ratio:                          	-1 
		Index Cluster Factor:                         	0.686509 
		Time of Creation:                             	2015-05-02-21.32.08.528002
		Last Statistics Update:                       	2016-10-12-11.06.17.653000
		Index Sequential Pages:                       	28302903
		Index First 2 Keys Cardinality:               	5241031435
		Index First 3 Keys Cardinality:               	5242341755
		Index First 4 Keys Cardinality:               	-1
		Index Avg Gap between Sequences:              	222959.000000 
		Fetch Avg Gap between Sequences:              	-1.000000 
		Index Avg Sequential Pages:                   	786191.000000 
		Fetch Avg Sequential Pages:                   	-1.000000 
		Index Avg Random Pages:                       	586145.000000 
		Fetch Avg Random Pages:                       	-1.000000 
		Index RID Count:                              	5321149234
		Index Deleted RID Count:                      	73837652
		Index Empty Leaf Pages:                       	55765
		Avg Partition Cluster Ratio:                  	-1 
		Avg Partition Cluster Factor:                 	-1.000000 
		Data Partition Cluster Factor:                	1.000000 
		Data Partition Page Fetch Pairs:              	Not Available

		Page Fetch Pairs information:
		-----------------------------
		Number of Page Fetch Pairs:                   	11 

				Buffer Size		Page Fetches
		--------------------------------------------------------
		Pair 1:  	100			1039302010
		Pair 2:  	350052			416376800
		Pair 3:  	9451404			206844276
		Pair 4:  	22053276			118214180
		Pair 5:  	31504680			98877758
		Pair 6:  	41656188			91777118
		Pair 7:  	53207904			89230548
		Pair 8:  	67910088			87250817
		Pair 9:  	86112792			86889824
		Pair 10:  	86462766			86462766
		Pair 11:  	86462766			86462766

Base Table Statistics:
----------------------
Name  : 	SMALL_TAB
Schema: 	SH2 
		Number of Columns:                            	1 
		Number of Pages with Rows:                    	29031
		Number of Pages:                              	29031
		Number of Rows:                               	6470552
		Table Overflow Record Count:                  	0
		Width of Rows:                                	14 
		Time of Creation:                             	2016-09-09-01.00.34.218012
		Last Statistics Update:                       	2016-09-09-01.21.43.373004
		Primary Tablespace:                           	GVAPTABS          
		Tablespace for Indexes:                       	NULLP
		Tablespace for Long Data:                     	NULLP
		Number of Referenced Columns:                 	1 
		Number of Indexes:                            	0 
		Volatile Table:                               	No
		Number of Active Blocks:                      	-1
		Number of Column Groups:                      	0 
		Number of Data Partitions:                    	1 
		Average Row Compression Ratio:                	-1.000000 
		Percent Rows Compressed:                      	-1.000000 
		Average Compressed Row Size:                  	-1 
		Statistics Type:                              	U

	Column Information:
	--------------------
		Number:                                       	1 
		Name:                                         	C1_ID
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	BIGINT
			Maximum column length:                        	8 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	6470552
			Average column length:                        	8 
			Number of most frequent values:               	-1 
			Number of quantiles:                          	20 
			Second highest data value:                    	268615579
			Second lowest data value:                     	1537590
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			1 		1142011		1
			340555 		87288721		340555
			681111 		106824791		681111
			1021666 		132208218		1021666
			1362221 		144856874		1362221
			1702777 		152931756		1702777
			2043332 		164940760		2043332
			2383888 		178662943		2383888
			2724443 		190381699		2724443
			3064998 		199993277		3064998
			3405554 		211764305		3405554
			3746109 		231107293		3746109
			4086664 		237462093		4086664
			4427220 		241699507		4427220
			4767775 		246905464		4767775
			5108331 		252268977		5108331
			5448886 		257246078		5448886
			5789441 		261978211		5789441
			6129997 		266292888		6129997
			6470552 		268615580		6470552
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39330509
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
use-se,

Бессмысленно использовать HSJOIN в этой ситуации, как видно из цены запроса в плане, пока:
Код: plaintext
Sort Heap size:       84

Увеличте SORTHEAP до, скажем, 50000 (4K страниц) или даже 100000 и повторите получение плана запроса.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39330522
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
use-se,

Вы можете попробовать получить план запроса даже на другом сервере db2 с гораздо меньшими характеристиками, даже на пустых таблицах, но с загруженной статистикой с промышленной системы.
Для этого вам надо:
- выгрузить DDL для каждой таблицы со статистикой:
db2look -d mydb -e -m -z SH1 -t BIG_TAB -o BIG_TAB.ddl
db2look -d mydb -e -m -z SH2 -t SMALL_TAB -o SMALL_TAB.ddl
- выполнить команды из файлов в тестовой БД
- установить характеристики пром. системы на тесте с помощью db2fopt (значения для opt_* взять из шапки плана запроса)

Дальше вы можете получать планы запроса на тестовой системе, играться там с опт. профилями, сравнивая цену запроса.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39330651
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinsteinuse-se,

Вы можете попробовать получить план запроса даже на другом сервере db2 с гораздо меньшими характеристиками, даже на пустых таблицах, но с загруженной статистикой с промышленной системы.
Для этого вам надо:
- выгрузить DDL для каждой таблицы со статистикой:
db2look -d mydb -e -m -z SH1 -t BIG_TAB -o BIG_TAB.ddl
db2look -d mydb -e -m -z SH2 -t SMALL_TAB -o SMALL_TAB.ddl
- выполнить команды из файлов в тестовой БД
- установить характеристики пром. системы на тесте с помощью db2fopt (значения для opt_* взять из шапки плана запроса)

Дальше вы можете получать планы запроса на тестовой системе, играться там с опт. профилями, сравнивая цену запроса.
Болшое спасибо за помощь и за советы.
Я к сожалению сам по себе "небыстрая лань", но и в добавок бываю периоды, когда приходится
заниматься многоми задачами в параллель. Поэтому прошу простить за задержки.
Это план с 100 000 страницами сортировки:
Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
574.
575.
576.
577.
578.
579.
580.
581.
582.
583.
584.
585.
586.
587.
588.
589.
590.
591.
592.
593.
594.
595.
596.
597.
598.
599.
600.
601.
602.
603.
604.
605.
606.
607.
608.
609.
610.
611.
612.
613.
614.
615.
616.
617.
618.
619.
620.
621.
622.
623.
624.
625.
626.
627.
628.
629.
630.
631.
632.
633.
634.
635.
636.
637.
638.
639.
640.
641.
642.
643.
644.
645.
646.
647.
648.
649.
650.
651.
652.
653.
654.
655.
656.
657.
658.
659.
660.
661.
662.
663.
664.
665.
666.
667.
668.
669.
670.
671.
672.
673.
674.
675.
676.
677.
678.
679.
680.
681.
682.
683.
684.
685.
686.
687.
688.
689.
690.
691.
692.
693.
694.
695.
696.
697.
698.
699.
700.
701.
702.
703.
704.
705.
706.
707.
708.
709.
710.
711.
712.
713.
DB2 Universal Database Version 9.7, 5622-044 (c) Copyright IBM Corp. 1991, 2009
Licensed Material - Program Property of IBM
IBM DATABASE 2 Explain Table Format Tool



******************** EXPLAIN INSTANCE ********************

DB2_VERSION:       09.07.8
SOURCE_NAME:       SQLC2H23
SOURCE_SCHEMA:     NULLID  
SOURCE_VERSION:      
EXPLAIN_TIME:      2016-10-20-12.33.43.605007
EXPLAIN_REQUESTER: SH1  

Database Context:
----------------
	Parallelism:          None
	CPU Speed:            3,306410e-007
	Comm Speed:           0
	Buffer Pool size:     74211200
	Sort Heap size:       100000
	Database Heap size:   300000
	Lock List size:       8398165
	Maximum Lock List:    98
	Average Applications: 50
	Locks Available:      263366448

Package Context:
---------------
	SQL Type:           Dynamic
	Optimization Level: 5
	Blocking:           Block All Cursors
	Isolation Level:    Uncommitted Read



---------------- STATEMENT 1  SECTION 201 ----------------
	QUERYNO:       10
	QUERYTAG:      CLP                 
	Statement Type:   Select
	Updatable:        No
	Deletable:        No
	Query Degree:     1

Profile Information:
--------------------
OPT_PROF: (Optimization Profile Name)
	SH1.PROF1
STMTPROF: (Statement Profile Name)
	Test Guidelines

Original Statement:
------------------
SELECT h.C1_ID, h.C2_HISTORY_DATE, h.PAY_STATUS 
FROM SH1.BIG_TAB h, SH2.SMALL_TAB l 
WHERE h.C1_ID = l.C1_ID 
     WITH UR


Optimized Statement:
-------------------
SELECT Q2.C1_ID AS "C1_ID", Q2.C2_HISTORY_DATE AS "C2_HISTORY_DATE", Q2.PAY_STATUS AS 
        "PAY_STATUS" 
FROM SH2.SMALL_TAB AS Q1, SH1.BIG_TAB AS Q2 
WHERE (Q2.C1_ID = Q1.C1_ID)

Access Plan:
-----------
	Total Cost: 		1,565e+008
	Query Degree:		1

              Rows 
             RETURN
             (   1)
              Cost 
               I/O 
               |
          1,69059e+008 
             HSJOIN
             (   2)
           1,565e+008 
          8,67065e+007 
         /-----+------\
  5,24234e+009     6,47055e+006 
     TBSCAN           TBSCAN
     (   3)           (   4)
  1,56039e+008        38146,2 
  8,66775e+007         29031 
       |                |
  5,24234e+009     6,47055e+006 
 TABLE: SH1    TABLE: SH2 
 BIG_TAB    SMALL_TAB
       Q2               Q1



Extended Diagnostic Information:
--------------------------------

No extended Diagnostic Information for this statement.


Plan Details:
-------------


	1) RETURN: (Return Result)
		Cumulative Total Cost: 		1,565e+008
		Cumulative CPU Cost: 		1,08508e+013
		Cumulative I/O Cost: 		8,67065e+007
		Cumulative Re-Total Cost: 	1,565e+008
		Cumulative Re-CPU Cost: 	1,08508e+013
		Cumulative Re-I/O Cost: 	8,67065e+007
		Cumulative First Row Cost: 	1,565e+008
		Estimated Bufferpool Buffers: 	8,66775e+007

		Arguments:
		---------
		BLDLEVEL: (Build level)
			DB2 v9.7.800.717 : s130316
		HEAPUSE : (Maximum Statement Heap Usage)
			96 Pages
		PREPTIME: (Statement prepare time)
			       128 milliseconds
		STMTHEAP: (Statement heap size)
			4096

		Input Streams:
		-------------
			5) From Operator #2

				Estimated number of rows: 	1,69059e+008
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.PAY_STATUS+Q3.C2_HISTORY_DATE+Q3.C1_ID


	2) HSJOIN: (Hash Join)
		Cumulative Total Cost: 		1,565e+008
		Cumulative CPU Cost: 		1,08508e+013
		Cumulative I/O Cost: 		8,67065e+007
		Cumulative Re-Total Cost: 	1,565e+008
		Cumulative Re-CPU Cost: 	1,08508e+013
		Cumulative Re-I/O Cost: 	8,67065e+007
		Cumulative First Row Cost: 	1,565e+008
		Estimated Bufferpool Buffers: 	8,66775e+007

		Arguments:
		---------
		BITFLTR : (Hash Join Bit Filter used)
			FALSE
		EARLYOUT: (Early Out flag)
			NONE
		HASHCODE: (Hash Code Size)
			24 BIT
		HASHTBSZ: (Number of hash table entries)
			6470552
		TEMPSIZE: (Temporary Table Page Size)
			4096
		TUPBLKSZ: (Tuple Block Size (bytes))
			16000

		Predicates:
		----------
		2) Predicate used in Join, 
			Comparison Operator: 		Equal (=)
			Subquery Input Required: 	No
			Filter Factor: 			4,98394e-009

			Predicate Text:
			--------------
			(Q2.C1_ID = Q1.C1_ID)



		Input Streams:
		-------------
			2) From Operator #3

				Estimated number of rows: 	5,24234e+009
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.PAY_STATUS+Q2.C2_HISTORY_DATE+Q2.C1_ID

			4) From Operator #4

				Estimated number of rows: 	6,47055e+006
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q1.C1_ID


		Output Streams:
		--------------
			5) To Operator #1

				Estimated number of rows: 	1,69059e+008
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.PAY_STATUS+Q3.C2_HISTORY_DATE+Q3.C1_ID


	3) TBSCAN: (Table Scan)
		Cumulative Total Cost: 		1,56039e+008
		Cumulative CPU Cost: 		9,56255e+012
		Cumulative I/O Cost: 		8,66775e+007
		Cumulative Re-Total Cost: 	1,56039e+008
		Cumulative Re-CPU Cost: 	9,56255e+012
		Cumulative Re-I/O Cost: 	8,66775e+007
		Cumulative First Row Cost: 	12,8677
		Estimated Bufferpool Buffers: 	8,66775e+007

		Arguments:
		---------
		JN INPUT: (Join input leg)
			OUTER
		MAXPAGES: (Maximum pages for prefetch)
			ALL
		PREFETCH: (Type of Prefetch)
			SEQUENTIAL
		ROWLOCK : (Row Lock intent)
			NONE
		SCANDIR : (Scan Direction)
			FORWARD
		SPEED   : (Assumed speed of scan, in sharing structures)
			FAST
		TABLOCK : (Table Lock intent)
			INTENT NONE
		TBISOLVL: (Table access Isolation Level)
			UNCOMMITTED READ
		THROTTLE: (Scan may be throttled, for scan sharing)
			TRUE
		VISIBLE : (May be included in scan sharing structures)
			TRUE
		WRAPPING: (Scan may start anywhere and wrap)
			TRUE

		Input Streams:
		-------------
			1) From Object SH1.BIG_TAB

				Estimated number of rows: 	5,24234e+009
				Number of columns: 		4
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.$RID$+Q2.PAY_STATUS+Q2.C2_HISTORY_DATE+Q2.C1_ID


		Output Streams:
		--------------
			2) To Operator #2

				Estimated number of rows: 	5,24234e+009
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.PAY_STATUS+Q2.C2_HISTORY_DATE+Q2.C1_ID


	4) TBSCAN: (Table Scan)
		Cumulative Total Cost: 		38146,2
		Cumulative CPU Cost: 		1,13216e+010
		Cumulative I/O Cost: 		29031
		Cumulative Re-Total Cost: 	3684,1
		Cumulative Re-CPU Cost: 	1,11423e+010
		Cumulative Re-I/O Cost: 	0
		Cumulative First Row Cost: 	9,0773
		Estimated Bufferpool Buffers: 	29031

		Arguments:
		---------
		JN INPUT: (Join input leg)
			INNER
		MAXPAGES: (Maximum pages for prefetch)
			ALL
		PREFETCH: (Type of Prefetch)
			SEQUENTIAL
		ROWLOCK : (Row Lock intent)
			NONE
		SCANDIR : (Scan Direction)
			FORWARD
		SPEED   : (Assumed speed of scan, in sharing structures)
			FAST
		TABLOCK : (Table Lock intent)
			INTENT NONE
		TBISOLVL: (Table access Isolation Level)
			UNCOMMITTED READ
		THROTTLE: (Scan may be throttled, for scan sharing)
			TRUE
		VISIBLE : (May be included in scan sharing structures)
			TRUE
		WRAPPING: (Scan may start anywhere and wrap)
			TRUE

		Input Streams:
		-------------
			3) From Object SH2.SMALL_TAB

				Estimated number of rows: 	6,47055e+006
				Number of columns: 		2
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q1.$RID$+Q1.C1_ID


		Output Streams:
		--------------
			4) To Operator #2

				Estimated number of rows: 	6,47055e+006
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q1.C1_ID


Objects Used in Access Plan:
---------------------------

	Schema: SH1  
	Name: 	BIG_TAB
	Type: 	Table

	Schema: SH2 
	Name: 	SMALL_TAB
	Type: 	Table

Extended Statistics Information:
--------------------------------

Tablespace Context:
-------------------
		Name:                                         	T_H_TS_IDX
		Overhead:                                     	12.670000 
		Transfer Rate:                                	0.180000 
		Prefetch Size:                                	1920 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

		Name:                                         	T_H_TS_TBLS     
		Overhead:                                     	12.670000 
		Transfer Rate:                                	0.180000 
		Prefetch Size:                                	1920 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

		Name:                                         	GVAPTABS          
		Overhead:                                     	9.000000 
		Transfer Rate:                                	0.060000 
		Prefetch Size:                                	192 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

Base Table Statistics:
----------------------
Name  : 	BIG_TAB
Schema: 	SH1  
		Number of Columns:                            	9 
		Number of Pages with Rows:                    	86677492
		Number of Pages:                              	86677492
		Number of Rows:                               	5242341755
		Table Overflow Record Count:                  	0
		Width of Rows:                                	44 
		Time of Creation:                             	2015-05-02-21.32.08.419004
		Last Statistics Update:                       	2016-10-12-11.06.17.653000
		Primary Tablespace:                           	T_H_TS_TBLS     
		Tablespace for Indexes:                       	T_H_TS_IDX
		Tablespace for Long Data:                     	NULLP
		Number of Referenced Columns:                 	3 
		Number of Indexes:                            	1 
		Volatile Table:                               	No
		Number of Active Blocks:                      	-1
		Number of Column Groups:                      	0 
		Number of Data Partitions:                    	1 
		Average Row Compression Ratio:                	-1.000000 
		Percent Rows Compressed:                      	-1.000000 
		Average Compressed Row Size:                  	-1 
		Statistics Type:                              	U

	Column Information:
	--------------------
		Number:                                       	4 
		Name:                                         	PAY_STATUS
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	SMALLINT
			Maximum column length:                        	2 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	11
			Average column length:                        	2 
			Number of most frequent values:               	10 
			Number of quantiles:                          	14 
			Second highest data value:                    	2052
			Second lowest data value:                     	2025
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Frequency Statistics:
			Valcount	Value 
			--------------------------------
			-226909440 		2022		
			335509920 		2025		
			314540544 		2043		
			199209008 		2037		
			110089192 		2028		
			73392800 		2031		
			73392800 		2034		
			31454056 		2052		
			26211712 		2040		
			10484685 		2046		

			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			0 		2022		0
			-226909440 		2022		0
			-158759168 		2025		0
			48313344 		2025		0
			119085056 		2028		0
			187235840 		2028		0
			255385600 		2031		0
			326157824 		2034		0
			394308096 		2037		0
			533230080 		2037		0
			601380864 		2043		0
			879224832 		2043		0
			947374459 		2052		0
			947374459 		2052		0

	Column Information:
	--------------------
		Number:                                       	2 
		Name:                                         	C2_HISTORY_DATE
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	DATE
			Maximum column length:                        	4 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	3776
			Average column length:                        	4 
			Number of most frequent values:               	10 
			Number of quantiles:                          	20 
			Second highest data value:                    	2016-09-30
			Second lowest data value:                     	1998-03-01
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Frequency Statistics:
			Valcount	Value 
			--------------------------------
			20969370 		2013-12-01		
			18348200 		2015-03-24		
			15727028 		2012-01-01		
			15727028 		2012-07-01		
			15727028 		2014-06-01		
			15727028 		2014-11-30		
			15727028 		2015-01-14		
			15727028 		2015-05-14		
			15727028 		2016-02-13		
			15727028 		2016-07-01		

			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			2621171 		2006-01-01		0
			275222976 		2009-08-08		0
			553067136 		2011-03-25		0
			838774784 		2012-01-01		0
			1111376640 		2012-07-01		0
			1381357184 		2012-12-19		0
			1656580352 		2013-06-01		0
			1931803264 		2013-10-01		0
			-2087941120 		2014-01-22		0
			-1810096896 		2014-05-27		0
			-1532252928 		2014-08-21		0
			-1254408960 		2014-12-15		0
			-984427776 		2015-03-11		0
			-709204736 		2015-05-31		0
			-431360768 		2015-08-29		0
			-156137984 		2015-11-27		0
			121705984 		2016-02-06		0
			396929024 		2016-04-09		0
			672152064 		2016-06-13		0
			947374459 		2016-09-01		0

	Column Information:
	--------------------
		Number:                                       	1 
		Name:                                         	C1_ID
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	BIGINT
			Maximum column length:                        	8 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	200644459
			Average column length:                        	8 
			Number of most frequent values:               	10 
			Number of quantiles:                          	20 
			Second highest data value:                    	268783998
			Second lowest data value:                     	1067929
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Frequency Statistics:
			Valcount	Value 
			--------------------------------
			1299 		36438362		
			1288 		36447884		
			1131 		33866795		
			1125 		32505228		
			1112 		33812528		
			1106 		84402767		
			1084 		78760604		
			1083 		41686576		
			1077 		33504966		
			1074 		83684924		

			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			9 		1067928		1
			-1535840067 		148562089		96135473
			-1535839970 		148562090		96135474
			-1259927333 		156774640		103673316
			-1259927325 		156774641		103673317
			-984014650 		166080005		112142940
			-984014573 		166080006		112142941
			-708101903 		176682081		121106182
			-708101879 		176682082		121106183
			-432189190 		185813489		129730788
			-432189060 		185813490		129730789
			-156276450 		196955705		139491342
			-156276427 		196955706		139491343
			119636278 		208728225		149829902
			119636290 		208728226		149829903
			395549005 		226710331		162637745
			395549032 		226710332		162637746
			671461724 		243685423		178698359
			671461737 		243685424		178698360
			947374459 		268783999		200644459

	Indexes defined on the table:
	-----------------------------
	Name  :	BIG_TAB_PK
	Schema:	SH1  
		Unique Rule:                                  	Primary key index
		Used in Operator:                             	No
		Page Fetch Pairs:                             	Available
		Number of Columns:                            	3 
		Index Leaf Pages:                             	57207556
		Index Tree Levels:                            	5 
		Index First Key Cardinality:                  	200644459
		Index Full Key Cardinality:                   	5242341755
		Index Cluster Ratio:                          	-1 
		Index Cluster Factor:                         	0.686509 
		Time of Creation:                             	2015-05-02-21.32.08.528002
		Last Statistics Update:                       	2016-10-12-11.06.17.653000
		Index Sequential Pages:                       	28302903
		Index First 2 Keys Cardinality:               	5241031435
		Index First 3 Keys Cardinality:               	5242341755
		Index First 4 Keys Cardinality:               	-1
		Index Avg Gap between Sequences:              	222959.000000 
		Fetch Avg Gap between Sequences:              	-1.000000 
		Index Avg Sequential Pages:                   	786191.000000 
		Fetch Avg Sequential Pages:                   	-1.000000 
		Index Avg Random Pages:                       	586145.000000 
		Fetch Avg Random Pages:                       	-1.000000 
		Index RID Count:                              	5321149234
		Index Deleted RID Count:                      	73837652
		Index Empty Leaf Pages:                       	55765
		Avg Partition Cluster Ratio:                  	-1 
		Avg Partition Cluster Factor:                 	-1.000000 
		Data Partition Cluster Factor:                	1.000000 
		Data Partition Page Fetch Pairs:              	Not Available

		Page Fetch Pairs information:
		-----------------------------
		Number of Page Fetch Pairs:                   	11 

				Buffer Size		Page Fetches
		--------------------------------------------------------
		Pair 1:  	100			1039302010
		Pair 2:  	350052			416376800
		Pair 3:  	9451404			206844276
		Pair 4:  	22053276			118214180
		Pair 5:  	31504680			98877758
		Pair 6:  	41656188			91777118
		Pair 7:  	53207904			89230548
		Pair 8:  	67910088			87250817
		Pair 9:  	86112792			86889824
		Pair 10:  	86462766			86462766
		Pair 11:  	86462766			86462766

Base Table Statistics:
----------------------
Name  : 	SMALL_TAB
Schema: 	SH2 
		Number of Columns:                            	1 
		Number of Pages with Rows:                    	29031
		Number of Pages:                              	29031
		Number of Rows:                               	6470552
		Table Overflow Record Count:                  	0
		Width of Rows:                                	14 
		Time of Creation:                             	2016-09-09-01.00.34.218012
		Last Statistics Update:                       	2016-09-09-01.21.43.373004
		Primary Tablespace:                           	GVAPTABS          
		Tablespace for Indexes:                       	NULLP
		Tablespace for Long Data:                     	NULLP
		Number of Referenced Columns:                 	1 
		Number of Indexes:                            	0 
		Volatile Table:                               	No
		Number of Active Blocks:                      	-1
		Number of Column Groups:                      	0 
		Number of Data Partitions:                    	1 
		Average Row Compression Ratio:                	-1.000000 
		Percent Rows Compressed:                      	-1.000000 
		Average Compressed Row Size:                  	-1 
		Statistics Type:                              	U

	Column Information:
	--------------------
		Number:                                       	1 
		Name:                                         	C1_ID
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	BIGINT
			Maximum column length:                        	8 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	6470552
			Average column length:                        	8 
			Number of most frequent values:               	-1 
			Number of quantiles:                          	20 
			Second highest data value:                    	268615579
			Second lowest data value:                     	1537590
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			1 		1142011		1
			340555 		87288721		340555
			681111 		106824791		681111
			1021666 		132208218		1021666
			1362221 		144856874		1362221
			1702777 		152931756		1702777
			2043332 		164940760		2043332
			2383888 		178662943		2383888
			2724443 		190381699		2724443
			3064998 		199993277		3064998
			3405554 		211764305		3405554
			3746109 		231107293		3746109
			4086664 		237462093		4086664
			4427220 		241699507		4427220
			4767775 		246905464		4767775
			5108331 		252268977		5108331
			5448886 		257246078		5448886
			5789441 		261978211		5789441
			6129997 		266292888		6129997
			6470552 		268615580		6470552



Думаю картина без dbm & db параметров все равно будет не полной.
Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
       Database Configuration for Database DB



 Database configuration release level                    = 0x0d00

 Database release level                                  = 0x0d00



 Database territory                                      = RU

 Database code page                                      = 1251

 Database code set                                       = 1251

 Database country/region code                            = 7

 Database collating sequence                             = IDENTITY

 Alternate collating sequence              (ALT_COLLATE) = 

 Number compatibility                                    = OFF

 Varchar2 compatibility                                  = OFF

 Date compatibility                                      = OFF

 Database page size                                      = 4096



 Dynamic SQL Query management           (DYN_QUERY_MGMT) = DISABLE



 Statement concentrator                      (STMT_CONC) = OFF



 Discovery support for this database       (DISCOVER_DB) = ENABLE



 Restrict access                                         = NO

 Default query optimization class         (DFT_QUERYOPT) = 5

 Degree of parallelism                      (DFT_DEGREE) = ANY

 Continue upon arithmetic exceptions   (DFT_SQLMATHWARN) = NO

 Default refresh age                   (DFT_REFRESH_AGE) = 0

 Default maintained table types for opt (DFT_MTTB_TYPES) = SYSTEM

 Number of frequent values retained     (NUM_FREQVALUES) = 10

 Number of quantiles retained            (NUM_QUANTILES) = 20



 Decimal floating point rounding mode  (DECFLT_ROUNDING) = ROUND_HALF_EVEN



 Backup pending                                          = NO



 All committed transactions have been written to disk    = NO

 Rollforward pending                                     = NO

 Restore pending                                         = NO



 Multi-page file allocation enabled                      = NO



 Log retain for recovery status                          = RECOVERY

 User exit for logging status                            = YES



 Self tuning memory                    (SELF_TUNING_MEM) = ON

 Size of database shared memory (4KB)  (DATABASE_MEMORY) = AUTOMATIC(83981658)

 Database memory threshold               (DB_MEM_THRESH) = 20

 Max storage for lock list (4KB)              (LOCKLIST) = AUTOMATIC(4096)

 Percent. of lock lists per application       (MAXLOCKS) = AUTOMATIC(98)

 Package cache size (4KB)                   (PCKCACHESZ) = AUTOMATIC(8192)

 Sort heap thres for shared sorts (4KB) (SHEAPTHRES_SHR) = AUTOMATIC(256)

 Sort list heap (4KB)                         (SORTHEAP) = AUTOMATIC(51)



 Database heap (4KB)                            (DBHEAP) = 300000

 Catalog cache size (4KB)              (CATALOGCACHE_SZ) = AUTOMATIC((MAXAPPLS*5))

 Log buffer size (4KB)                        (LOGBUFSZ) = 16000

 Utilities heap size (4KB)                (UTIL_HEAP_SZ) = 200000

 Buffer pool size (pages)                     (BUFFPAGE) = 200000

 SQL statement heap (4KB)                     (STMTHEAP) = AUTOMATIC(4096)

 Default application heap (4KB)             (APPLHEAPSZ) = AUTOMATIC(2500)

 Application Memory Size (4KB)             (APPL_MEMORY) = AUTOMATIC(5000)

 Statistics heap size (4KB)               (STAT_HEAP_SZ) = AUTOMATIC(8096)



 Interval for checking deadlock (ms)         (DLCHKTIME) = 10000

 Lock timeout (sec)                        (LOCKTIMEOUT) = -1



 Changed pages threshold                (CHNGPGS_THRESH) = 60

 Number of asynchronous page cleaners   (NUM_IOCLEANERS) = AUTOMATIC(39)

 Number of I/O servers                   (NUM_IOSERVERS) = AUTOMATIC(60)

 Index sort flag                             (INDEXSORT) = YES

 Sequential detect flag                      (SEQDETECT) = YES

 Default prefetch size (pages)         (DFT_PREFETCH_SZ) = AUTOMATIC



 Track modified pages                         (TRACKMOD) = YES



 Default number of containers                            = 1

 Default tablespace extentsize (pages)   (DFT_EXTENT_SZ) = 32



 Max number of active applications            (MAXAPPLS) = 900

 Average number of active applications       (AVG_APPLS) = AUTOMATIC(100)

 Max DB files open per application            (MAXFILOP) = 65535



 Log file size (4KB)                         (LOGFILSIZ) = 32000

 Number of primary log files                (LOGPRIMARY) = 20

 Number of secondary log files               (LOGSECOND) = 200

 Changed path to log files                  (NEWLOGPATH) = 

 Path to log files                                       = E:\logs\

 Overflow log path                     (OVERFLOWLOGPATH) = 

 Mirror log path                         (MIRRORLOGPATH) = 

 First active log file                                   = S0432036.LOG

 Block log on disk full                (BLK_LOG_DSK_FUL) = AUTOMATIC(YES)

 Block non logged operations            (BLOCKNONLOGGED) = NO

 Percent max primary log space by transaction  (MAX_LOG) = 0

 Num. of active log files for 1 active UOW(NUM_LOG_SPAN) = 50



 Group commit count                          (MINCOMMIT) = 1

 Percent log file reclaimed before soft chckpt (SOFTMAX) = 1800

 Log retain for recovery enabled             (LOGRETAIN) = RECOVERY

 User exit for logging enabled                (USEREXIT) = OFF



 HADR database role                                      = STANDARD

 HADR local host name                  (HADR_LOCAL_HOST) = 

 HADR local service name                (HADR_LOCAL_SVC) = 

 HADR remote host name                (HADR_REMOTE_HOST) = 

 HADR remote service name              (HADR_REMOTE_SVC) = 

 HADR instance name of remote server  (HADR_REMOTE_INST) = 

 HADR timeout value                       (HADR_TIMEOUT) = 120

 HADR log write synchronization mode     (HADR_SYNCMODE) = NEARSYNC

 HADR peer window duration (seconds)  (HADR_PEER_WINDOW) = 0



 First log archive method                 (LOGARCHMETH1) = DISK:E:\archlogs\

 Options for logarchmeth1                  (LOGARCHOPT1) = 

 Second log archive method                (LOGARCHMETH2) = OFF

 Options for logarchmeth2                  (LOGARCHOPT2) = 

 Failover log archive path                (FAILARCHPATH) = H:\failarchpath\

 Number of log archive retries on error   (NUMARCHRETRY) = 5

 Log archive retry Delay (secs)         (ARCHRETRYDELAY) = 20

 Vendor options                              (VENDOROPT) = 



 Auto restart enabled                      (AUTORESTART) = ON

 Index re-creation time and redo index build  (INDEXREC) = SYSTEM (RESTART)

 Log pages during index build            (LOGINDEXBUILD) = OFF

 Default number of loadrec sessions    (DFT_LOADREC_SES) = 1

 Number of database backups to retain   (NUM_DB_BACKUPS) = 366

 Recovery history retention (days)     (REC_HIS_RETENTN) = 366

 Auto deletion of recovery objects    (AUTO_DEL_REC_OBJ) = OFF



 TSM management class                    (TSM_MGMTCLASS) = DB2MGMT

 TSM node name                            (TSM_NODENAME) = 

 TSM owner                                   (TSM_OWNER) = 

 TSM password                             (TSM_PASSWORD) = 



 Automatic maintenance                      (AUTO_MAINT) = ON

   Automatic database backup            (AUTO_DB_BACKUP) = OFF

   Automatic table maintenance          (AUTO_TBL_MAINT) = ON

     Automatic runstats                  (AUTO_RUNSTATS) = OFF

       Automatic statement statistics  (AUTO_STMT_STATS) = OFF

     Automatic statistics profiling    (AUTO_STATS_PROF) = OFF

       Automatic profile updates         (AUTO_PROF_UPD) = OFF

     Automatic reorganization               (AUTO_REORG) = OFF



 Auto-Revalidation                          (AUTO_REVAL) = DISABLED

 Currently Committed                        (CUR_COMMIT) = DISABLED

 CHAR output with DECIMAL input        (DEC_TO_CHAR_FMT) = V95

 Enable XML Character operations        (ENABLE_XMLCHAR) = YES

 WLM Collection Interval (minutes)     (WLM_COLLECT_INT) = 0

 Monitor Collect Settings

 Request metrics                       (MON_REQ_METRICS) = NONE

 Activity metrics                      (MON_ACT_METRICS) = NONE

 Object metrics                        (MON_OBJ_METRICS) = NONE

 Unit of work events                      (MON_UOW_DATA) = NONE

 Lock timeout events                   (MON_LOCKTIMEOUT) = NONE

 Deadlock events                          (MON_DEADLOCK) = WITHOUT_HIST

 Lock wait events                         (MON_LOCKWAIT) = NONE

 Lock wait event threshold               (MON_LW_THRESH) = 4294967295

 Number of package list entries         (MON_PKGLIST_SZ) = 32

 Lock event notification level         (MON_LCK_MSG_LVL) = 1



 SMTP Server                               (SMTP_SERVER) = xxx.xx.xx.xx

 SQL conditional compilation flags         (SQL_CCFLAGS) = 

 Section actuals setting               (SECTION_ACTUALS) = NONE

 Connect procedure                        (CONNECT_PROC) = 



...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39330668
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
use-se,

Сравнение 2-х планов
Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
Database Context:                                 Database Context:                          
----------------                                  ----------------                           
	Parallelism:          None                	Parallelism:          None         
	CPU Speed:            3,306410e-007       	CPU Speed:            3,306410e-007
	Comm Speed:           0                   	Comm Speed:           0            
	Buffer Pool size:     74211200            	Buffer Pool size:     74211200     
	Sort Heap size:       1019                	Sort Heap size:       100000       
	Database Heap size:   300000              	Database Heap size:   300000       
	Lock List size:       8398150             	Lock List size:       8398165      
	Maximum Lock List:    98                  	Maximum Lock List:    98           
	Average Applications: 50                  	Average Applications: 50           
	Locks Available:      263365984           	Locks Available:      263366448    

Access Plan:                                      Access Plan:                               
-----------                                       -----------                               
	Total Cost: 		2,36238e+008      	Total Cost: 		1,565e+008
	Query Degree:		1                 	Query Degree:		1         
	                                                                                    
               Rows                                             Rows                        
              RETURN                                           RETURN                       
              (   1)                                           (   1)                       
               Cost                                             Cost                        
                I/O                                              I/O                        
                |                                                |                          
           1,69059e+008                                     1,69059e+008                    
              ^NLJOIN                                          HSJOIN                       
              (   2)                                           (   2)                       
           2,36238e+008                                      1,565e+008                     
           8,67083e+007                                     8,67065e+007                    
         /------+-------\                                  /-----+------\                   
  5,24234e+009         0,0322488                    5,24234e+009     6,47055e+006           
     TBSCAN             IXSCAN                         TBSCAN           TBSCAN              
     (   3)             (   4)                         (   3)           (   4)              
  1,56039e+008          18,1524                     1,56039e+008        38146,2             
  8,66775e+007             2                        8,66775e+007         29031              
       |                  |                              |                |                 
  5,24234e+009       6,47055e+006                   5,24234e+009     6,47055e+006           
 TABLE: SH1      INDEX: SH2                        TABLE: SH1    TABLE: SH2                 
 BIG_TAB         SMALL_TAB_INDEX                   BIG_TAB       SMALL_TAB                     
       Q2                 Q1                             Q2               Q1                

Суда по цене запроса план с HSJOIN имеет заметно меньшую цену, когда вы значительно расширили SORTHEAP.
Теперь можно попробовать без профиля попробовать (должно выбрать HSJOIN) и время выполнения с HSJOIN.
Ну и всё же с intra-parallel тоже надо бы попробовать.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39330881
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinsteinuse-se,
Суда по цене запроса план с HSJOIN имеет заметно меньшую цену, когда вы значительно расширили SORTHEAP.
Теперь можно попробовать без профиля попробовать (должно выбрать HSJOIN) и время выполнения с HSJOIN.
Ну и всё же с intra-parallel тоже надо бы попробовать.
Мда, результат есть, ранее лучшее время было 2ч 30м -
сейчас 38минут, и таки да, я увидел скорость чтения 100-300 стабильно и в пике 700мб/с.
Большое спасибо всем кто помог и учавствовал.

И что же делать с SORTHEAP и остальными автоматическими настройками?
Отказаться, или каждый раз перед тяжелыми задачами менять SORTHEAP, SHEAPTHRES_SHR, LOCKLIST и пр.?
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39330973
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
use-seИ что же делать с SORTHEAP и остальными автоматическими настройками?
Отказаться, или каждый раз перед тяжелыми задачами менять SORTHEAP, SHEAPTHRES_SHR, LOCKLIST и пр.?
Хороший вопрос...
Если это преимущественно транзакционная система, то такой большой SORTHEAP может "скрывать" проблемы приложений. Транзакционые запросы не должны делать большие сортировки. Если при маленьком SORTHEAP вы можете отловить такие запросы по кол-ву переполнений сортировок (SORT_OVERFLOWS), то при большом вы их, скорее всего, не увидите, этих переполнений. И вам придется обнаруживать такие запросы по другим признакам, например, по заметному TOTAL_SECTION_SORT_TIME. Это если вы вообще этим занимаетесь...
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39331113
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
use-seMark Barinsteinuse-se,
Суда по цене запроса план с HSJOIN имеет заметно меньшую цену, когда вы значительно расширили SORTHEAP.
Теперь можно попробовать без профиля попробовать (должно выбрать HSJOIN) и время выполнения с HSJOIN.
Ну и всё же с intra-parallel тоже надо бы попробовать.
Мда, результат есть, ранее лучшее время было 2ч 30м -
сейчас 38минут, и таки да, я увидел скорость чтения 100-300 стабильно и в пике 700мб/с.
Большое спасибо всем кто помог и учавствовал.

И что же делать с SORTHEAP и остальными автоматическими настройками?
Отказаться, или каждый раз перед тяжелыми задачами менять SORTHEAP, SHEAPTHRES_SHR, LOCKLIST и пр.?

Я помню в моих экспериментах, что HSJOIN DB2 в плане показывала не в том порядке, что Oracle (при примерно одинаковом выполнении). Так что или я глючу и всё напутал, или имеет смысл попробовать поменять порядок:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<?xml version="1.0" encoding="UTF-8"?>
<OPTPROFILE VERSION="9.1.0.0">

  <STMTPROFILE ID="Test Guidelines">
    <STMTKEY>
      <![CDATA[SELECT h.c1_id, h.c2_HISTORY_DATE, h.PAY_STATUS
FROM big_tab h, small_tab l
WHERE h.c1_id =l.c1_id
WITH UR]]>
    </STMTKEY>
    <OPTGUIDELINES>
      <HSJOIN>                                         
        <TBSCAN TABLE='l'/>
        <TBSCAN TABLE='h'/> 
      </HSJOIN>                                  
    </OPTGUIDELINES>
  </STMTPROFILE>
</OPTPROFILE>


Кроме того, мы всё ещё не увидели вариант с MDC, который имеет шансы быть самым быстрым.

MDC, де-факто, это IOT (Index Organized Table), только когда в обычном индексе вы при поиске c1_id получаете строку (или несколько строк с равным c1_id), здесь вы найдёте сразу экстент (или набор экстентов) с равным c1_id, к чему можно применить многоблочное чтение.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39331361
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinsteinuse-seИ что же делать с SORTHEAP и остальными автоматическими настройками?
Отказаться, или каждый раз перед тяжелыми задачами менять SORTHEAP, SHEAPTHRES_SHR, LOCKLIST и пр.?
Хороший вопрос...
Если это преимущественно транзакционная система, то такой большой SORTHEAP может "скрывать" проблемы приложений. Транзакционые запросы не должны делать большие сортировки. Если при маленьком SORTHEAP вы можете отловить такие запросы по кол-ву переполнений сортировок (SORT_OVERFLOWS), то при большом вы их, скорее всего, не увидите, этих переполнений. И вам придется обнаруживать такие запросы по другим признакам, например, по заметному TOTAL_SECTION_SORT_TIME. Это если вы вообще этим занимаетесь...
Основную массу занимают сравнительно небольшие транзакционные запросы и до недавнего времени я вообще считал,
что у меня все работает как надо. Сейчас думаю несколько иначе. В принципе, я понимаю в какую сторону нужно двигаться, буду делать ревизию всего.

Victor MetelitsaКроме того, мы всё ещё не увидели вариант с MDC, который имеет шансы быть самым быстрым.
Да Вы правы за мной должок:
1) Тест с MDC по С1
2) Тест с профилем, который Вы предложили в последнем письме
3) Не уверен, что нужен тест с HJ на FlashSystem, но если кого заинтересует то сделаю
4) Думаю все же сделать тест с профилем NL, и индексом на малую таблицу (первый/старый план), и с увеличенным SORTHEAP
5) С включенным INTRA_PARALLEL=YES
Только прошу не ожидать от меня быстрых результатов, тесты буду делать в свободное от работы время
и по доступности ресурсов.

Еще раз всем большое спасибо.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39331815
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor MetelitsaЯ помню в моих экспериментах, что HSJOIN DB2 в плане показывала не в том порядке, что Oracle (при примерно одинаковом выполнении).Да, это так.
DB2 build (или inner) сторону (маленькую таблицу) показывает справа, в отличие от Oracle.
У DB2 правило - outer таблица join'а - слева, inner - справа.

Victor MetelitsaКроме того, мы всё ещё не увидели вариант с MDC, который имеет шансы быть самым быстрым.

MDC, де-факто, это IOT (Index Organized Table), только когда в обычном индексе вы при поиске c1_id получаете строку (или несколько строк с равным c1_id), здесь вы найдёте сразу экстент (или набор экстентов) с равным c1_id, к чему можно применить многоблочное чтение.
Статистика по C1_ID большой таблицы:

Number of distinct column values: 200 644 459 (из 5 242 341 755)

Для MDC очень опасная ситуация - в среднем по 25 значений на один id. Даже с минимальными pagesize = 4 K и extent size = 2 это будет очень большая трата дискового места зря - 8K для 25 коротких записей.
Я бы очень не рекомендовал использовать MDC здесь - у поля слишком высокая кардинальность.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39331877
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверил и убедился, что таки сглючил
Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
Access Plan:
-----------
	Total Cost: 		61711.4
	Query Degree:		1

              Rows 
             RETURN
             (   1)
              Cost 
               I/O 
               |
                1 
             GRPBY 
             (   2)
             61711.4 
              36105 
               |
              10000 
             HSJOIN
             (   3)
             61711.1 
              36105 
         /-----+------\
     1e+007             100 
     TBSCAN           TBSCAN
     (   4)           (   5)
     61476.3          8.66916 
      36104              1 
       |                |
     1e+007             100 
 TABLE: DB2INST1  TABLE: DB2INST1
      T_BIG           T_SMALL
       Q2               Q1
(хм, я почему-то думал, что будет наоборот. или тогда глючил не я, а DB2 выдавала странный план?)

и поленился просчитать MDC.

Правда, у меня тут же возникла мысль делать MDC не по C1_ID, а по выражению вроде C1_ID/1000 (и для верности прибавить h. C1_ID/1000=l. C1_ID/1000 в условие), но, хотя растрату пространства таким способом можно радикально уменьшить, выигрыш в скорости под сомнением. По-видимому, он будет, если диапазон возможных значений C1_ID в маленькой таблице "радикально" меньше диапазона в большой. В таком случае "нужные" строчки сконцентрируются в относительно небольшом количестве экстентов. В целом, сомнительная затея.

Ну, а кусок буферного пула под крупноблочность в любом случае должно быть полезно выделить.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39332513
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, поскольку речь шла не о простой выборке, а о выборке со вставкой в таблицу, ограничивать могут транзакционные логи и чистка грязного буферного пула.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39332649
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor MetelitsaКстати, поскольку речь шла не о простой выборке, а о выборке со вставкой в таблицу, ограничивать могут транзакционные логи и чистка грязного буферного пула.
Там NOT LOGGED INITIALLY.
Относительно MDC, получается что таблица займет примерно 1.6 ТБ?
С практичекой точки зрения это не применимо.
Поскольку таблицу все равно придется читать полностью, то и скорость
выборки не уверен что вырастет.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39332775
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну да, Марк показал, что MDC не годится, а я поленился подсчитать.

Но чисткой буферного пула стоит поинтересоваться. Насколько я его понимаю, запись из пула на диск всегда мелкоблочная, то бишь страничная.

См.

num_iocleaners http://www.ibm.com/support/knowledgecenter/en/SSEPGG_10.5.0/com.ibm.db2.luw.admin.config.doc/doc/r0000332.html

DB2_USE_ALTERNATE_PAGE_CLEANING http://www.ibm.com/support/knowledgecenter/en/SSEPGG_10.5.0/com.ibm.db2.luw.admin.regvars.doc/doc/r0005665.html

и т.п.

По-хорошему, конечно, следовало бы сперва посмотреть мониторингом на то, во что оно таки упирается.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39333025
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor MetelitsaНу да, Марк показал, что MDC не годится, а я поленился подсчитать.

Но чисткой буферного пула стоит поинтересоваться. Насколько я его понимаю, запись из пула на диск всегда мелкоблочная, то бишь страничная.

См.

num_iocleaners http://www.ibm.com/support/knowledgecenter/en/SSEPGG_10.5.0/com.ibm.db2.luw.admin.config.doc/doc/r0000332.html

DB2_USE_ALTERNATE_PAGE_CLEANING http://www.ibm.com/support/knowledgecenter/en/SSEPGG_10.5.0/com.ibm.db2.luw.admin.regvars.doc/doc/r0005665.html

и т.п.

По-хорошему, конечно, следовало бы сперва посмотреть мониторингом на то, во что оно таки упирается.
Спасибо за подсказку, но пока не планирую совершать каких либо резких движений.
1) За время обсуждения данной проблемы мои взгляды на текущее состояние БД сильно пошатнулись и мне
сейчас гораздо важнее найти другие проблемы, которые сейчас для меня не видны.
К примеру, те же планы запросов пересмотреть с увеличенными SORTHEAP и пр.
Нужно разобраться с использованием временых TS.
2) БД преймущественно OLTP и рассматриваемый запрос запускается 1 раз в сутки.
Сейчас стоит вот так:
Код: plaintext
1.
Changed pages threshold                (CHNGPGS_THRESH) = 60
Number of asynchronous page cleaners   (NUM_IOCLEANERS) = AUTOMATIC(39)
и честно говоря я пока не готов что либо менять.
Пока в планах попробовать отказаться от STMM.
Кстати, параметр NUM_IOCLEANERS практически всегда держится на ~40 и практически не плавает.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39333060
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полезно же понять, что запрос упирается именно во вставку (или не упирается), в том числе в сопутствущую чистку буферов, пусть и не делая никаких "резких движений".
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39333104
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor MetelitsaПолезно же понять, что запрос упирается именно во вставку (или не упирается), в том числе в сопутствущую чистку буферов, пусть и не делая никаких "резких движений".
Вы абсолютно правы.
Просто, нужно хотя бы сделать те тесты, что я описал ранее.
И вот прошел день, а я даже не начинал, то одно то другое и все вроде важное.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39334473
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor Metelitsaпропущено...

Я помню в моих экспериментах, что HSJOIN DB2 в плане показывала не в том порядке, что Oracle (при примерно одинаковом выполнении). Так что или я глючу и всё напутал, или имеет смысл попробовать поменять порядок:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<?xml version="1.0" encoding="UTF-8"?>
<OPTPROFILE VERSION="9.1.0.0">

  <STMTPROFILE ID="Test Guidelines">
    <STMTKEY>
      <![CDATA[SELECT h.c1_id, h.c2_HISTORY_DATE, h.PAY_STATUS
FROM big_tab h, small_tab l
WHERE h.c1_id =l.c1_id
WITH UR]]>
    </STMTKEY>
    <OPTGUIDELINES>
      <HSJOIN>                                         
        <TBSCAN TABLE='l'/>
        <TBSCAN TABLE='h'/> 
      </HSJOIN>                                  
    </OPTGUIDELINES>
  </STMTPROFILE>
</OPTPROFILE>


пропущено....
2) Вот план запроса, если в профиле поменять местами таблицы (inner,outer)
Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
574.
575.
576.
577.
578.
579.
580.
581.
582.
583.
584.
585.
586.
587.
588.
589.
590.
591.
592.
593.
594.
595.
596.
597.
598.
599.
600.
601.
602.
603.
604.
605.
606.
607.
608.
609.
610.
611.
612.
613.
614.
615.
616.
617.
618.
619.
620.
621.
622.
623.
624.
625.
626.
627.
628.
629.
630.
631.
632.
633.
634.
635.
636.
637.
638.
639.
640.
641.
642.
643.
644.
645.
646.
647.
648.
649.
650.
651.
652.
653.
654.
655.
656.
657.
658.
659.
660.
661.
662.
663.
664.
665.
666.
667.
668.
669.
670.
671.
672.
673.
674.
675.
676.
677.
678.
679.
680.
681.
682.
683.
684.
685.
686.
687.
688.
689.
690.
691.
692.
693.
694.
695.
696.
697.
698.
699.
700.
701.
702.
703.
704.
705.
706.
707.
708.
709.
710.
711.
712.
713.
DB2 Universal Database Version 9.7, 5622-044 (c) Copyright IBM Corp. 1991, 2009
Licensed Material - Program Property of IBM
IBM DATABASE 2 Explain Table Format Tool



******************** EXPLAIN INSTANCE ********************

DB2_VERSION:       09.07.8
SOURCE_NAME:       SQLC2H23
SOURCE_SCHEMA:     NULLID  
SOURCE_VERSION:      
EXPLAIN_TIME:      2016-10-25-11.27.30.612007
EXPLAIN_REQUESTER: SH1  

Database Context:
----------------
	Parallelism:          None
	CPU Speed:            3,306410e-007
	Comm Speed:           0
	Buffer Pool size:     74211200
	Sort Heap size:       100000
	Database Heap size:   300000
	Lock List size:       8398152
	Maximum Lock List:    98
	Average Applications: 50
	Locks Available:      263366048

Package Context:
---------------
	SQL Type:           Dynamic
	Optimization Level: 5
	Blocking:           Block All Cursors
	Isolation Level:    Uncommitted Read



---------------- STATEMENT 1  SECTION 201 ----------------
	QUERYNO:       2
	QUERYTAG:      CLP                 
	Statement Type:   Select
	Updatable:        No
	Deletable:        No
	Query Degree:     1

Profile Information:
--------------------
OPT_PROF: (Optimization Profile Name)
	SH1.PROF2
STMTPROF: (Statement Profile Name)
	Test Guidelines

Original Statement:
------------------
SELECT h.C1_ID, h.C2_HISTORY_DATE, h.PAY_STATUS 
FROM SH1.BIG_TAB h, SH2.SMALL_TAB l 
WHERE h.C1_ID = l.C1_ID 
     WITH UR


Optimized Statement:
-------------------
SELECT Q2.C1_ID AS "C1_ID", Q2.C2_HISTORY_DATE AS "C2_HISTORY_DATE", Q2.PAY_STATUS AS 
        "PAY_STATUS" 
FROM SH2.SMALL_TAB AS Q1, SH1.BIG_TAB AS Q2 
WHERE (Q2.C1_ID = Q1.C1_ID)

Access Plan:
-----------
	Total Cost: 		3,40282e+038
	Query Degree:		1

              Rows 
             RETURN
             (   1)
              Cost 
               I/O 
               |
          1,69059e+008 
             HSJOIN
             (   2)
          3,40282e+038 
          3,40282e+038 
         /-----+------\
  6,47055e+006     5,24234e+009 
     TBSCAN           TBSCAN
     (   3)           (   4)
     38146,2       1,56039e+008 
      29031        8,66775e+007 
       |                |
  6,47055e+006     5,24234e+009 
 TABLE: SH2   TABLE: SH1  
  SMALL_TAB   BIG_TAB
       Q1               Q2



Extended Diagnostic Information:
--------------------------------

No extended Diagnostic Information for this statement.


Plan Details:
-------------


	1) RETURN: (Return Result)
		Cumulative Total Cost: 		3,40282e+038
		Cumulative CPU Cost: 		3,40282e+038
		Cumulative I/O Cost: 		3,40282e+038
		Cumulative Re-Total Cost: 	3,40282e+038
		Cumulative Re-CPU Cost: 	3,40282e+038
		Cumulative Re-I/O Cost: 	3,40282e+038
		Cumulative First Row Cost: 	3,40282e+038
		Estimated Bufferpool Buffers: 	3,40282e+038

		Arguments:
		---------
		BLDLEVEL: (Build level)
			DB2 v9.7.800.717 : s130316
		HEAPUSE : (Maximum Statement Heap Usage)
			96 Pages
		PREPTIME: (Statement prepare time)
			       228 milliseconds
		STMTHEAP: (Statement heap size)
			4096

		Input Streams:
		-------------
			5) From Operator #2

				Estimated number of rows: 	1,69059e+008
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.PAY_STATUS+Q3.C2_HISTORY_DATE+Q3.C1_ID


	2) HSJOIN: (Hash Join)
		Cumulative Total Cost: 		3,40282e+038
		Cumulative CPU Cost: 		3,40282e+038
		Cumulative I/O Cost: 		3,40282e+038
		Cumulative Re-Total Cost: 	3,40282e+038
		Cumulative Re-CPU Cost: 	3,40282e+038
		Cumulative Re-I/O Cost: 	3,40282e+038
		Cumulative First Row Cost: 	3,40282e+038
		Estimated Bufferpool Buffers: 	3,40282e+038

		Arguments:
		---------
		BITFLTR : (Hash Join Bit Filter used)
			FALSE
		EARLYOUT: (Early Out flag)
			NONE
		HASHCODE: (Hash Code Size)
			32 BIT
		HASHTBSZ: (Number of hash table entries)
			200644464
		TEMPSIZE: (Temporary Table Page Size)
			4096
		TUPBLKSZ: (Tuple Block Size (bytes))
			16000

		Predicates:
		----------
		2) Predicate used in Join, 
			Comparison Operator: 		Equal (=)
			Subquery Input Required: 	No
			Filter Factor: 			4,98394e-009

			Predicate Text:
			--------------
			(Q2.C1_ID = Q1.C1_ID)



		Input Streams:
		-------------
			2) From Operator #3

				Estimated number of rows: 	6,47055e+006
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q1.C1_ID

			4) From Operator #4

				Estimated number of rows: 	5,24234e+009
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.PAY_STATUS+Q2.C2_HISTORY_DATE+Q2.C1_ID


		Output Streams:
		--------------
			5) To Operator #1

				Estimated number of rows: 	1,69059e+008
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.PAY_STATUS+Q3.C2_HISTORY_DATE+Q3.C1_ID


	3) TBSCAN: (Table Scan)
		Cumulative Total Cost: 		38146,2
		Cumulative CPU Cost: 		1,13216e+010
		Cumulative I/O Cost: 		29031
		Cumulative Re-Total Cost: 	3684,1
		Cumulative Re-CPU Cost: 	1,11423e+010
		Cumulative Re-I/O Cost: 	0
		Cumulative First Row Cost: 	9,0773
		Estimated Bufferpool Buffers: 	29031

		Arguments:
		---------
		JN INPUT: (Join input leg)
			OUTER
		MAXPAGES: (Maximum pages for prefetch)
			ALL
		PREFETCH: (Type of Prefetch)
			SEQUENTIAL
		ROWLOCK : (Row Lock intent)
			NONE
		SCANDIR : (Scan Direction)
			FORWARD
		SPEED   : (Assumed speed of scan, in sharing structures)
			FAST
		TABLOCK : (Table Lock intent)
			INTENT NONE
		TBISOLVL: (Table access Isolation Level)
			UNCOMMITTED READ
		THROTTLE: (Scan may be throttled, for scan sharing)
			TRUE
		VISIBLE : (May be included in scan sharing structures)
			TRUE
		WRAPPING: (Scan may start anywhere and wrap)
			TRUE

		Input Streams:
		-------------
			1) From Object SH2.SMALL_TAB

				Estimated number of rows: 	6,47055e+006
				Number of columns: 		2
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q1.$RID$+Q1.C1_ID


		Output Streams:
		--------------
			2) To Operator #2

				Estimated number of rows: 	6,47055e+006
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q1.C1_ID


	4) TBSCAN: (Table Scan)
		Cumulative Total Cost: 		1,56039e+008
		Cumulative CPU Cost: 		9,56255e+012
		Cumulative I/O Cost: 		8,66775e+007
		Cumulative Re-Total Cost: 	1,56039e+008
		Cumulative Re-CPU Cost: 	9,56255e+012
		Cumulative Re-I/O Cost: 	8,66775e+007
		Cumulative First Row Cost: 	12,8677
		Estimated Bufferpool Buffers: 	8,66775e+007

		Arguments:
		---------
		JN INPUT: (Join input leg)
			INNER
		MAXPAGES: (Maximum pages for prefetch)
			ALL
		PREFETCH: (Type of Prefetch)
			SEQUENTIAL
		ROWLOCK : (Row Lock intent)
			NONE
		SCANDIR : (Scan Direction)
			FORWARD
		SPEED   : (Assumed speed of scan, in sharing structures)
			FAST
		TABLOCK : (Table Lock intent)
			INTENT NONE
		TBISOLVL: (Table access Isolation Level)
			UNCOMMITTED READ
		THROTTLE: (Scan may be throttled, for scan sharing)
			TRUE
		VISIBLE : (May be included in scan sharing structures)
			TRUE
		WRAPPING: (Scan may start anywhere and wrap)
			TRUE

		Input Streams:
		-------------
			3) From Object SH1.BIG_TAB

				Estimated number of rows: 	5,24234e+009
				Number of columns: 		4
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.$RID$+Q2.PAY_STATUS+Q2.C2_HISTORY_DATE+Q2.C1_ID


		Output Streams:
		--------------
			4) To Operator #2

				Estimated number of rows: 	5,24234e+009
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.PAY_STATUS+Q2.C2_HISTORY_DATE+Q2.C1_ID


Objects Used in Access Plan:
---------------------------

	Schema: SH1  
	Name: 	BIG_TAB
	Type: 	Table

	Schema: SH2 
	Name: 	SMALL_TAB
	Type: 	Table

Extended Statistics Information:
--------------------------------

Tablespace Context:
-------------------
		Name:                                         	T_H_TS_IDX
		Overhead:                                     	12.670000 
		Transfer Rate:                                	0.180000 
		Prefetch Size:                                	1920 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

		Name:                                         	T_H_TS_TBLS     
		Overhead:                                     	12.670000 
		Transfer Rate:                                	0.180000 
		Prefetch Size:                                	1920 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

		Name:                                         	GVAPTABS          
		Overhead:                                     	9.000000 
		Transfer Rate:                                	0.060000 
		Prefetch Size:                                	192 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

Base Table Statistics:
----------------------
Name  : 	SMALL_TAB
Schema: 	SH2 
		Number of Columns:                            	1 
		Number of Pages with Rows:                    	29031
		Number of Pages:                              	29031
		Number of Rows:                               	6470552
		Table Overflow Record Count:                  	0
		Width of Rows:                                	14 
		Time of Creation:                             	2016-09-09-01.00.34.218012
		Last Statistics Update:                       	2016-09-09-01.21.43.373004
		Primary Tablespace:                           	GVAPTABS          
		Tablespace for Indexes:                       	NULLP
		Tablespace for Long Data:                     	NULLP
		Number of Referenced Columns:                 	1 
		Number of Indexes:                            	0 
		Volatile Table:                               	No
		Number of Active Blocks:                      	-1
		Number of Column Groups:                      	0 
		Number of Data Partitions:                    	1 
		Average Row Compression Ratio:                	-1.000000 
		Percent Rows Compressed:                      	-1.000000 
		Average Compressed Row Size:                  	-1 
		Statistics Type:                              	U

	Column Information:
	--------------------
		Number:                                       	1 
		Name:                                         	C1_ID
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	BIGINT
			Maximum column length:                        	8 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	6470552
			Average column length:                        	8 
			Number of most frequent values:               	-1 
			Number of quantiles:                          	20 
			Second highest data value:                    	268615579
			Second lowest data value:                     	1537590
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			1 		1142011		1
			340555 		87288721		340555
			681111 		106824791		681111
			1021666 		132208218		1021666
			1362221 		144856874		1362221
			1702777 		152931756		1702777
			2043332 		164940760		2043332
			2383888 		178662943		2383888
			2724443 		190381699		2724443
			3064998 		199993277		3064998
			3405554 		211764305		3405554
			3746109 		231107293		3746109
			4086664 		237462093		4086664
			4427220 		241699507		4427220
			4767775 		246905464		4767775
			5108331 		252268977		5108331
			5448886 		257246078		5448886
			5789441 		261978211		5789441
			6129997 		266292888		6129997
			6470552 		268615580		6470552

Base Table Statistics:
----------------------
Name  : 	BIG_TAB
Schema: 	SH1  
		Number of Columns:                            	9 
		Number of Pages with Rows:                    	86677492
		Number of Pages:                              	86677492
		Number of Rows:                               	5242341755
		Table Overflow Record Count:                  	0
		Width of Rows:                                	44 
		Time of Creation:                             	2015-05-02-21.32.08.419004
		Last Statistics Update:                       	2016-10-12-11.06.17.653000
		Primary Tablespace:                           	T_H_TS_TBLS     
		Tablespace for Indexes:                       	T_H_TS_IDX
		Tablespace for Long Data:                     	NULLP
		Number of Referenced Columns:                 	3 
		Number of Indexes:                            	1 
		Volatile Table:                               	No
		Number of Active Blocks:                      	-1
		Number of Column Groups:                      	0 
		Number of Data Partitions:                    	1 
		Average Row Compression Ratio:                	-1.000000 
		Percent Rows Compressed:                      	-1.000000 
		Average Compressed Row Size:                  	-1 
		Statistics Type:                              	U

	Column Information:
	--------------------
		Number:                                       	4 
		Name:                                         	PAY_STATUS
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	SMALLINT
			Maximum column length:                        	2 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	11
			Average column length:                        	2 
			Number of most frequent values:               	10 
			Number of quantiles:                          	14 
			Second highest data value:                    	2052
			Second lowest data value:                     	2025
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Frequency Statistics:
			Valcount	Value 
			--------------------------------
			-226909440 		2022		
			335509920 		2025		
			314540544 		2043		
			199209008 		2037		
			110089192 		2028		
			73392800 		2031		
			73392800 		2034		
			31454056 		2052		
			26211712 		2040		
			10484685 		2046		

			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			0 		2022		0
			-226909440 		2022		0
			-158759168 		2025		0
			48313344 		2025		0
			119085056 		2028		0
			187235840 		2028		0
			255385600 		2031		0
			326157824 		2034		0
			394308096 		2037		0
			533230080 		2037		0
			601380864 		2043		0
			879224832 		2043		0
			947374459 		2052		0
			947374459 		2052		0

	Column Information:
	--------------------
		Number:                                       	2 
		Name:                                         	C2_HISTORY_DATE
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	DATE
			Maximum column length:                        	4 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	3776
			Average column length:                        	4 
			Number of most frequent values:               	10 
			Number of quantiles:                          	20 
			Second highest data value:                    	2016-09-30
			Second lowest data value:                     	1998-03-01
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Frequency Statistics:
			Valcount	Value 
			--------------------------------
			20969370 		2013-12-01		
			18348200 		2015-03-24		
			15727028 		2012-01-01		
			15727028 		2012-07-01		
			15727028 		2014-06-01		
			15727028 		2014-11-30		
			15727028 		2015-01-14		
			15727028 		2015-05-14		
			15727028 		2016-02-13		
			15727028 		2016-07-01		

			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			2621171 		2006-01-01		0
			275222976 		2009-08-08		0
			553067136 		2011-03-25		0
			838774784 		2012-01-01		0
			1111376640 		2012-07-01		0
			1381357184 		2012-12-19		0
			1656580352 		2013-06-01		0
			1931803264 		2013-10-01		0
			-2087941120 		2014-01-22		0
			-1810096896 		2014-05-27		0
			-1532252928 		2014-08-21		0
			-1254408960 		2014-12-15		0
			-984427776 		2015-03-11		0
			-709204736 		2015-05-31		0
			-431360768 		2015-08-29		0
			-156137984 		2015-11-27		0
			121705984 		2016-02-06		0
			396929024 		2016-04-09		0
			672152064 		2016-06-13		0
			947374459 		2016-09-01		0

	Column Information:
	--------------------
		Number:                                       	1 
		Name:                                         	C1_ID
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	BIGINT
			Maximum column length:                        	8 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	200644459
			Average column length:                        	8 
			Number of most frequent values:               	10 
			Number of quantiles:                          	20 
			Second highest data value:                    	268783998
			Second lowest data value:                     	1067929
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Frequency Statistics:
			Valcount	Value 
			--------------------------------
			1299 		36438362		
			1288 		36447884		
			1131 		33866795		
			1125 		32505228		
			1112 		33812528		
			1106 		84402767		
			1084 		78760604		
			1083 		41686576		
			1077 		33504966		
			1074 		83684924		

			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			9 		1067928		1
			-1535840067 		148562089		96135473
			-1535839970 		148562090		96135474
			-1259927333 		156774640		103673316
			-1259927325 		156774641		103673317
			-984014650 		166080005		112142940
			-984014573 		166080006		112142941
			-708101903 		176682081		121106182
			-708101879 		176682082		121106183
			-432189190 		185813489		129730788
			-432189060 		185813490		129730789
			-156276450 		196955705		139491342
			-156276427 		196955706		139491343
			119636278 		208728225		149829902
			119636290 		208728226		149829903
			395549005 		226710331		162637745
			395549032 		226710332		162637746
			671461724 		243685423		178698359
			671461737 		243685424		178698360
			947374459 		268783999		200644459

	Indexes defined on the table:
	-----------------------------
	Name  :	BIG_TAB_PK
	Schema:	SH1  
		Unique Rule:                                  	Primary key index
		Used in Operator:                             	No
		Page Fetch Pairs:                             	Available
		Number of Columns:                            	3 
		Index Leaf Pages:                             	57207556
		Index Tree Levels:                            	5 
		Index First Key Cardinality:                  	200644459
		Index Full Key Cardinality:                   	5242341755
		Index Cluster Ratio:                          	-1 
		Index Cluster Factor:                         	0.686509 
		Time of Creation:                             	2015-05-02-21.32.08.528002
		Last Statistics Update:                       	2016-10-12-11.06.17.653000
		Index Sequential Pages:                       	28302903
		Index First 2 Keys Cardinality:               	5241031435
		Index First 3 Keys Cardinality:               	5242341755
		Index First 4 Keys Cardinality:               	-1
		Index Avg Gap between Sequences:              	222959.000000 
		Fetch Avg Gap between Sequences:              	-1.000000 
		Index Avg Sequential Pages:                   	786191.000000 
		Fetch Avg Sequential Pages:                   	-1.000000 
		Index Avg Random Pages:                       	586145.000000 
		Fetch Avg Random Pages:                       	-1.000000 
		Index RID Count:                              	5321149234
		Index Deleted RID Count:                      	73837652
		Index Empty Leaf Pages:                       	55765
		Avg Partition Cluster Ratio:                  	-1 
		Avg Partition Cluster Factor:                 	-1.000000 
		Data Partition Cluster Factor:                	1.000000 
		Data Partition Page Fetch Pairs:              	Not Available

		Page Fetch Pairs information:
		-----------------------------
		Number of Page Fetch Pairs:                   	11 

				Buffer Size		Page Fetches
		--------------------------------------------------------
		Pair 1:  	100			1039302010
		Pair 2:  	350052			416376800
		Pair 3:  	9451404			206844276
		Pair 4:  	22053276			118214180
		Pair 5:  	31504680			98877758
		Pair 6:  	41656188			91777118
		Pair 7:  	53207904			89230548
		Pair 8:  	67910088			87250817
		Pair 9:  	86112792			86889824
		Pair 10:  	86462766			86462766
		Pair 11:  	86462766			86462766


стоимость выросла, сделал только план - выборку делать не стал

5) Сделал отдельный bufferpool на 200 000 страниц с numblockpages 50 000 для TS большой таблицы.
Включил intra_parallel. Включил monitor switches, сделал выборку. Время выборки уменьшилось с
38 минут до 35.
План запроса тут:
Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
574.
575.
576.
577.
578.
579.
580.
581.
582.
583.
584.
585.
586.
587.
588.
589.
590.
591.
592.
593.
594.
595.
596.
597.
598.
599.
600.
601.
602.
603.
604.
605.
606.
607.
608.
609.
610.
611.
612.
613.
614.
615.
616.
617.
618.
619.
620.
621.
622.
623.
624.
625.
626.
627.
628.
629.
630.
631.
632.
633.
634.
635.
636.
637.
638.
639.
640.
641.
642.
643.
644.
645.
646.
647.
648.
649.
650.
651.
652.
653.
654.
655.
656.
657.
658.
659.
660.
661.
662.
663.
664.
665.
666.
667.
668.
669.
670.
671.
672.
673.
674.
675.
676.
677.
678.
679.
680.
681.
682.
683.
684.
685.
686.
687.
688.
689.
690.
691.
692.
693.
694.
695.
696.
697.
698.
699.
700.
701.
702.
703.
704.
705.
706.
707.
708.
709.
710.
711.
712.
713.
714.
715.
716.
717.
718.
719.
720.
721.
722.
723.
724.
725.
726.
727.
728.
729.
730.
731.
732.
733.
734.
735.
736.
737.
738.
739.
740.
741.
742.
743.
744.
745.
746.
747.
748.
749.
750.
751.
752.
753.
754.
755.
756.
757.
758.
759.
760.
761.
762.
763.
764.
765.
766.
767.
768.
769.
770.
771.
772.
773.
774.
775.
DB2 Universal Database Version 9.7, 5622-044 (c) Copyright IBM Corp. 1991, 2009
Licensed Material - Program Property of IBM
IBM DATABASE 2 Explain Table Format Tool



******************** EXPLAIN INSTANCE ********************

DB2_VERSION:       09.07.8
SOURCE_NAME:       SQLC2H23
SOURCE_SCHEMA:     NULLID  
SOURCE_VERSION:      
EXPLAIN_TIME:      2016-10-26-12.45.39.599003
EXPLAIN_REQUESTER: SH1  

Database Context:
----------------
	Parallelism:          Intra-Partition Parallelism
	CPU Speed:            3,306410e-007
	Comm Speed:           0
	Buffer Pool size:     74411200
	Sort Heap size:       100000
	Database Heap size:   300000
	Lock List size:       8892802
	Maximum Lock List:    98
	Average Applications: 50
	Locks Available:      278878272

Package Context:
---------------
	SQL Type:           Dynamic
	Optimization Level: 5
	Blocking:           Block All Cursors
	Isolation Level:    Uncommitted Read



---------------- STATEMENT 1  SECTION 201 ----------------
	QUERYNO:       2
	QUERYTAG:      CLP                 
	Statement Type:   Select
	Updatable:        No
	Deletable:        No
	Query Degree:     -1

Original Statement:
------------------
SELECT h.C1_ID, h.C2_HISTORY_DATE, h.PAY_STATUS 
FROM SH1.BIG_TAB h, SH2.SMALL_TAB l 
WHERE h.C1_ID = l.C1_ID 
     WITH UR


Optimized Statement:
-------------------
SELECT Q2.C1_ID AS "C1_ID", Q2.C2_HISTORY_DATE AS "C2_HISTORY_DATE", Q2.PAY_STATUS AS 
        "PAY_STATUS" 
FROM SH2.SMALL_TAB AS Q1, SH1.BIG_TAB AS Q2 
WHERE (Q2.C1_ID = Q1.C1_ID)

Access Plan:
-----------
	Total Cost: 		1,56539e+008
	Query Degree:		40

              Rows 
             RETURN
             (   1)
              Cost 
               I/O 
               |
          1,69059e+008 
             LTQ   
             (   2)
          1,56539e+008 
          8,67065e+007 
               |
          1,69059e+008 
             HSJOIN
             (   3)
           1,565e+008 
          8,67065e+007 
         /-----+------\
  5,24234e+009     6,47055e+006 
     TBSCAN           TBSCAN
     (   4)           (   5)
  1,56039e+008        38146,2 
  8,66775e+007         29031 
       |                |
  5,24234e+009     6,47055e+006 
 TABLE: SH1    TABLE: SH2 
 BIG_TAB    SMALL_TAB
       Q2               Q1



Extended Diagnostic Information:
--------------------------------

No extended Diagnostic Information for this statement.


Plan Details:
-------------


	1) RETURN: (Return Result)
		Cumulative Total Cost: 		1,56539e+008
		Cumulative CPU Cost: 		1,09698e+013
		Cumulative I/O Cost: 		8,67065e+007
		Cumulative Re-Total Cost: 	1,565e+008
		Cumulative Re-CPU Cost: 	1,08508e+013
		Cumulative Re-I/O Cost: 	8,67065e+007
		Cumulative First Row Cost: 	1,565e+008
		Estimated Bufferpool Buffers: 	8,66775e+007

		Arguments:
		---------
		BLDLEVEL: (Build level)
			DB2 v9.7.800.717 : s130316
		HEAPUSE : (Maximum Statement Heap Usage)
			96 Pages
		PREPTIME: (Statement prepare time)
			     51858 milliseconds
		STMTHEAP: (Statement heap size)
			4096

		Input Streams:
		-------------
			6) From Operator #2

				Estimated number of rows: 	1,69059e+008
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.PAY_STATUS+Q3.C2_HISTORY_DATE+Q3.C1_ID


	2) TQ    : (Table Queue)
		Cumulative Total Cost: 		1,56539e+008
		Cumulative CPU Cost: 		1,09698e+013
		Cumulative I/O Cost: 		8,67065e+007
		Cumulative Re-Total Cost: 	1,565e+008
		Cumulative Re-CPU Cost: 	1,08508e+013
		Cumulative Re-I/O Cost: 	8,67065e+007
		Cumulative First Row Cost: 	1,565e+008
		Estimated Bufferpool Buffers: 	8,66775e+007

		Arguments:
		---------
		LISTENER: (Listener Table Queue type)
			FALSE
		TQ TYPE : (Table queue type)
			LOCAL
		TQDEGREE: (Degree of Intra-Partition parallelism)
			40
		TQMERGE : (Merging Table Queue flag)
			FALSE
		TQREAD  : (Table Queue Read type)
			READ AHEAD
		UNIQUE  : (Uniqueness required flag)
			FALSE

		Input Streams:
		-------------
			5) From Operator #3

				Estimated number of rows: 	1,69059e+008
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.PAY_STATUS+Q3.C2_HISTORY_DATE+Q3.C1_ID


		Output Streams:
		--------------
			6) To Operator #1

				Estimated number of rows: 	1,69059e+008
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.PAY_STATUS+Q3.C2_HISTORY_DATE+Q3.C1_ID


	3) HSJOIN: (Hash Join)
		Cumulative Total Cost: 		1,565e+008
		Cumulative CPU Cost: 		1,08508e+013
		Cumulative I/O Cost: 		8,67065e+007
		Cumulative Re-Total Cost: 	1,565e+008
		Cumulative Re-CPU Cost: 	1,08508e+013
		Cumulative Re-I/O Cost: 	8,67065e+007
		Cumulative First Row Cost: 	1,565e+008
		Estimated Bufferpool Buffers: 	8,66775e+007

		Arguments:
		---------
		BITFLTR : (Hash Join Bit Filter used)
			FALSE
		EARLYOUT: (Early Out flag)
			NONE
		HASHCODE: (Hash Code Size)
			24 BIT
		HASHTBSZ: (Number of hash table entries)
			6470552
		TEMPSIZE: (Temporary Table Page Size)
			4096
		TUPBLKSZ: (Tuple Block Size (bytes))
			16000

		Predicates:
		----------
		2) Predicate used in Join, 
			Comparison Operator: 		Equal (=)
			Subquery Input Required: 	No
			Filter Factor: 			4,98394e-009

			Predicate Text:
			--------------
			(Q2.C1_ID = Q1.C1_ID)



		Input Streams:
		-------------
			2) From Operator #4

				Estimated number of rows: 	5,24234e+009
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.PAY_STATUS+Q2.C2_HISTORY_DATE+Q2.C1_ID

			4) From Operator #5

				Estimated number of rows: 	6,47055e+006
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q1.C1_ID


		Output Streams:
		--------------
			5) To Operator #2

				Estimated number of rows: 	1,69059e+008
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q3.PAY_STATUS+Q3.C2_HISTORY_DATE+Q3.C1_ID


	4) TBSCAN: (Table Scan)
		Cumulative Total Cost: 		1,56039e+008
		Cumulative CPU Cost: 		9,56255e+012
		Cumulative I/O Cost: 		8,66775e+007
		Cumulative Re-Total Cost: 	1,56039e+008
		Cumulative Re-CPU Cost: 	9,56255e+012
		Cumulative Re-I/O Cost: 	8,66775e+007
		Cumulative First Row Cost: 	12,8677
		Estimated Bufferpool Buffers: 	8,66775e+007

		Arguments:
		---------
		JN INPUT: (Join input leg)
			OUTER
		MAXPAGES: (Maximum pages for prefetch)
			ALL
		PREFETCH: (Type of Prefetch)
			SEQUENTIAL
		ROWLOCK : (Row Lock intent)
			NONE
		SCANDIR : (Scan Direction)
			FORWARD
		SCANGRAN: (Intra-Partition Parallelism Scan Granularity)
			2
		SCANTYPE: (Intra-Partition Parallelism Scan Type)
			LOCAL PARALLEL
		SCANUNIT: (Intra-Partition Parallelism Scan Unit)
			PAGE
		SPEED   : (Assumed speed of scan, in sharing structures)
			FAST
		TABLOCK : (Table Lock intent)
			INTENT NONE
		TBISOLVL: (Table access Isolation Level)
			UNCOMMITTED READ
		THROTTLE: (Scan may be throttled, for scan sharing)
			TRUE
		VISIBLE : (May be included in scan sharing structures)
			TRUE
		WRAPPING: (Scan may start anywhere and wrap)
			TRUE

		Input Streams:
		-------------
			1) From Object SH1.BIG_TAB

				Estimated number of rows: 	5,24234e+009
				Number of columns: 		4
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.$RID$+Q2.PAY_STATUS+Q2.C2_HISTORY_DATE+Q2.C1_ID


		Output Streams:
		--------------
			2) To Operator #3

				Estimated number of rows: 	5,24234e+009
				Number of columns: 		3
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.PAY_STATUS+Q2.C2_HISTORY_DATE+Q2.C1_ID


	5) TBSCAN: (Table Scan)
		Cumulative Total Cost: 		38146,2
		Cumulative CPU Cost: 		1,13216e+010
		Cumulative I/O Cost: 		29031
		Cumulative Re-Total Cost: 	3684,1
		Cumulative Re-CPU Cost: 	1,11423e+010
		Cumulative Re-I/O Cost: 	0
		Cumulative First Row Cost: 	9,0773
		Estimated Bufferpool Buffers: 	29031

		Arguments:
		---------
		JN INPUT: (Join input leg)
			INNER
		MAXPAGES: (Maximum pages for prefetch)
			ALL
		PREFETCH: (Type of Prefetch)
			SEQUENTIAL
		ROWLOCK : (Row Lock intent)
			NONE
		SCANDIR : (Scan Direction)
			FORWARD
		SCANGRAN: (Intra-Partition Parallelism Scan Granularity)
			2
		SCANTYPE: (Intra-Partition Parallelism Scan Type)
			LOCAL PARALLEL
		SCANUNIT: (Intra-Partition Parallelism Scan Unit)
			PAGE
		SPEED   : (Assumed speed of scan, in sharing structures)
			FAST
		TABLOCK : (Table Lock intent)
			INTENT NONE
		TBISOLVL: (Table access Isolation Level)
			UNCOMMITTED READ
		THROTTLE: (Scan may be throttled, for scan sharing)
			TRUE
		VISIBLE : (May be included in scan sharing structures)
			TRUE
		WRAPPING: (Scan may start anywhere and wrap)
			TRUE

		Input Streams:
		-------------
			3) From Object SH2.SMALL_TAB

				Estimated number of rows: 	6,47055e+006
				Number of columns: 		2
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q1.$RID$+Q1.C1_ID


		Output Streams:
		--------------
			4) To Operator #3

				Estimated number of rows: 	6,47055e+006
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q1.C1_ID


Objects Used in Access Plan:
---------------------------

	Schema: SH1  
	Name: 	BIG_TAB
	Type: 	Table

	Schema: SH2 
	Name: 	SMALL_TAB
	Type: 	Table

Extended Statistics Information:
--------------------------------

Tablespace Context:
-------------------
		Name:                                         	T_H_TS_IDX
		Overhead:                                     	12.670000 
		Transfer Rate:                                	0.180000 
		Prefetch Size:                                	1920 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

		Name:                                         	T_H_TS_TBLS     
		Overhead:                                     	12.670000 
		Transfer Rate:                                	0.180000 
		Prefetch Size:                                	1920 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

		Name:                                         	GVAPTABS          
		Overhead:                                     	9.000000 
		Transfer Rate:                                	0.060000 
		Prefetch Size:                                	192 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

Base Table Statistics:
----------------------
Name  : 	BIG_TAB
Schema: 	SH1  
		Number of Columns:                            	9 
		Number of Pages with Rows:                    	86677492
		Number of Pages:                              	86677492
		Number of Rows:                               	5242341755
		Table Overflow Record Count:                  	0
		Width of Rows:                                	44 
		Time of Creation:                             	2015-05-02-21.32.08.419004
		Last Statistics Update:                       	2016-10-12-11.06.17.653000
		Primary Tablespace:                           	T_H_TS_TBLS     
		Tablespace for Indexes:                       	T_H_TS_IDX
		Tablespace for Long Data:                     	NULLP
		Number of Referenced Columns:                 	3 
		Number of Indexes:                            	1 
		Volatile Table:                               	No
		Number of Active Blocks:                      	-1
		Number of Column Groups:                      	0 
		Number of Data Partitions:                    	1 
		Average Row Compression Ratio:                	-1.000000 
		Percent Rows Compressed:                      	-1.000000 
		Average Compressed Row Size:                  	-1 
		Statistics Type:                              	U

	Column Information:
	--------------------
		Number:                                       	4 
		Name:                                         	PAY_STATUS
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	SMALLINT
			Maximum column length:                        	2 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	11
			Average column length:                        	2 
			Number of most frequent values:               	10 
			Number of quantiles:                          	14 
			Second highest data value:                    	2052
			Second lowest data value:                     	2025
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Frequency Statistics:
			Valcount	Value 
			--------------------------------
			-226909440 		2022		
			335509920 		2025		
			314540544 		2043		
			199209008 		2037		
			110089192 		2028		
			73392800 		2031		
			73392800 		2034		
			31454056 		2052		
			26211712 		2040		
			10484685 		2046		

			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			0 		2022		0
			-226909440 		2022		0
			-158759168 		2025		0
			48313344 		2025		0
			119085056 		2028		0
			187235840 		2028		0
			255385600 		2031		0
			326157824 		2034		0
			394308096 		2037		0
			533230080 		2037		0
			601380864 		2043		0
			879224832 		2043		0
			947374459 		2052		0
			947374459 		2052		0

	Column Information:
	--------------------
		Number:                                       	2 
		Name:                                         	C2_HISTORY_DATE
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	DATE
			Maximum column length:                        	4 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	3776
			Average column length:                        	4 
			Number of most frequent values:               	10 
			Number of quantiles:                          	20 
			Second highest data value:                    	2016-09-30
			Second lowest data value:                     	1998-03-01
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Frequency Statistics:
			Valcount	Value 
			--------------------------------
			20969370 		2013-12-01		
			18348200 		2015-03-24		
			15727028 		2012-01-01		
			15727028 		2012-07-01		
			15727028 		2014-06-01		
			15727028 		2014-11-30		
			15727028 		2015-01-14		
			15727028 		2015-05-14		
			15727028 		2016-02-13		
			15727028 		2016-07-01		

			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			2621171 		2006-01-01		0
			275222976 		2009-08-08		0
			553067136 		2011-03-25		0
			838774784 		2012-01-01		0
			1111376640 		2012-07-01		0
			1381357184 		2012-12-19		0
			1656580352 		2013-06-01		0
			1931803264 		2013-10-01		0
			-2087941120 		2014-01-22		0
			-1810096896 		2014-05-27		0
			-1532252928 		2014-08-21		0
			-1254408960 		2014-12-15		0
			-984427776 		2015-03-11		0
			-709204736 		2015-05-31		0
			-431360768 		2015-08-29		0
			-156137984 		2015-11-27		0
			121705984 		2016-02-06		0
			396929024 		2016-04-09		0
			672152064 		2016-06-13		0
			947374459 		2016-09-01		0

	Column Information:
	--------------------
		Number:                                       	1 
		Name:                                         	C1_ID
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	BIGINT
			Maximum column length:                        	8 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	200644459
			Average column length:                        	8 
			Number of most frequent values:               	10 
			Number of quantiles:                          	20 
			Second highest data value:                    	268783998
			Second lowest data value:                     	1067929
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Frequency Statistics:
			Valcount	Value 
			--------------------------------
			1299 		36438362		
			1288 		36447884		
			1131 		33866795		
			1125 		32505228		
			1112 		33812528		
			1106 		84402767		
			1084 		78760604		
			1083 		41686576		
			1077 		33504966		
			1074 		83684924		

			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			9 		1067928		1
			-1535840067 		148562089		96135473
			-1535839970 		148562090		96135474
			-1259927333 		156774640		103673316
			-1259927325 		156774641		103673317
			-984014650 		166080005		112142940
			-984014573 		166080006		112142941
			-708101903 		176682081		121106182
			-708101879 		176682082		121106183
			-432189190 		185813489		129730788
			-432189060 		185813490		129730789
			-156276450 		196955705		139491342
			-156276427 		196955706		139491343
			119636278 		208728225		149829902
			119636290 		208728226		149829903
			395549005 		226710331		162637745
			395549032 		226710332		162637746
			671461724 		243685423		178698359
			671461737 		243685424		178698360
			947374459 		268783999		200644459

	Indexes defined on the table:
	-----------------------------
	Name  :	BIG_TAB_PK
	Schema:	SH1  
		Unique Rule:                                  	Primary key index
		Used in Operator:                             	No
		Page Fetch Pairs:                             	Available
		Number of Columns:                            	3 
		Index Leaf Pages:                             	57207556
		Index Tree Levels:                            	5 
		Index First Key Cardinality:                  	200644459
		Index Full Key Cardinality:                   	5242341755
		Index Cluster Ratio:                          	-1 
		Index Cluster Factor:                         	0.686509 
		Time of Creation:                             	2015-05-02-21.32.08.528002
		Last Statistics Update:                       	2016-10-12-11.06.17.653000
		Index Sequential Pages:                       	28302903
		Index First 2 Keys Cardinality:               	5241031435
		Index First 3 Keys Cardinality:               	5242341755
		Index First 4 Keys Cardinality:               	-1
		Index Avg Gap between Sequences:              	222959.000000 
		Fetch Avg Gap between Sequences:              	-1.000000 
		Index Avg Sequential Pages:                   	786191.000000 
		Fetch Avg Sequential Pages:                   	-1.000000 
		Index Avg Random Pages:                       	586145.000000 
		Fetch Avg Random Pages:                       	-1.000000 
		Index RID Count:                              	5321149234
		Index Deleted RID Count:                      	73837652
		Index Empty Leaf Pages:                       	55765
		Avg Partition Cluster Ratio:                  	-1 
		Avg Partition Cluster Factor:                 	-1.000000 
		Data Partition Cluster Factor:                	1.000000 
		Data Partition Page Fetch Pairs:              	Not Available

		Page Fetch Pairs information:
		-----------------------------
		Number of Page Fetch Pairs:                   	11 

				Buffer Size		Page Fetches
		--------------------------------------------------------
		Pair 1:  	100			1039302010
		Pair 2:  	350052			416376800
		Pair 3:  	9451404			206844276
		Pair 4:  	22053276			118214180
		Pair 5:  	31504680			98877758
		Pair 6:  	41656188			91777118
		Pair 7:  	53207904			89230548
		Pair 8:  	67910088			87250817
		Pair 9:  	86112792			86889824
		Pair 10:  	86462766			86462766
		Pair 11:  	86462766			86462766

Base Table Statistics:
----------------------
Name  : 	SMALL_TAB
Schema: 	SH2 
		Number of Columns:                            	1 
		Number of Pages with Rows:                    	29031
		Number of Pages:                              	29031
		Number of Rows:                               	6470552
		Table Overflow Record Count:                  	0
		Width of Rows:                                	14 
		Time of Creation:                             	2016-09-09-01.00.34.218012
		Last Statistics Update:                       	2016-09-09-01.21.43.373004
		Primary Tablespace:                           	GVAPTABS          
		Tablespace for Indexes:                       	NULLP
		Tablespace for Long Data:                     	NULLP
		Number of Referenced Columns:                 	1 
		Number of Indexes:                            	0 
		Volatile Table:                               	No
		Number of Active Blocks:                      	-1
		Number of Column Groups:                      	0 
		Number of Data Partitions:                    	1 
		Average Row Compression Ratio:                	-1.000000 
		Percent Rows Compressed:                      	-1.000000 
		Average Compressed Row Size:                  	-1 
		Statistics Type:                              	U

	Column Information:
	--------------------
		Number:                                       	1 
		Name:                                         	C1_ID
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	BIGINT
			Maximum column length:                        	8 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	6470552
			Average column length:                        	8 
			Number of most frequent values:               	-1 
			Number of quantiles:                          	20 
			Second highest data value:                    	268615579
			Second lowest data value:                     	1537590
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			1 		1142011		1
			340555 		87288721		340555
			681111 		106824791		681111
			1021666 		132208218		1021666
			1362221 		144856874		1362221
			1702777 		152931756		1702777
			2043332 		164940760		2043332
			2383888 		178662943		2383888
			2724443 		190381699		2724443
			3064998 		199993277		3064998
			3405554 		211764305		3405554
			3746109 		231107293		3746109
			4086664 		237462093		4086664
			4427220 		241699507		4427220
			4767775 		246905464		4767775
			5108331 		252268977		5108331
			5448886 		257246078		5448886
			5789441 		261978211		5789441
			6129997 		266292888		6129997
			6470552 		268615580		6470552



Снял снимок
Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
            Application Snapshot

Application handle                         = 187
Application status                         = UOW Waiting
Status change time                         = 26.10.2016 13:36:23.151125
Application code page                      = 1251
Application country/region code            = 7
DUOW correlation token                     = *LOCAL.INST.161026094524
Application name                           = db2bp.exe
Application ID                             = *LOCAL.INST.161026094524
Sequence number                            = 00009
TP Monitor client user ID                  =
TP Monitor client workstation name         =
TP Monitor client application name         =
TP Monitor client accounting string        =

Connection request start timestamp         = 26.10.2016 12:45:24.119532
Connect request completion timestamp       =
Application idle time                      = 37 minutes  17 seconds
CONNECT Authorization ID                   = SH1
Client login ID                            = DB2ADMIN
Configuration NNAME of client              = DB
Client database manager product ID         = SQL09078
Process ID of client application           = 6232
Platform of client application             = NT 64BIT
Communication protocol of client           = Local Client

Inbound communication address              = *LOCAL.INST

Database name                              = DB
Database path                              = D:\INST\NODE0000\SQL00001\
Client database alias                      = DB
Input database alias                       =
Last reset timestamp                       =
Snapshot timestamp                         = 26.10.2016 14:13:40.686533
Authorization level granted                =
   User authority:
      DBADM authority
      CREATETAB authority
      BINDADD authority
      CONNECT authority
      CREATE_NOT_FENC authority
      LOAD authority
      IMPLICIT_SCHEMA authority
      CREATE_EXT_RT authority
      QUIESCE_CONN authority
      DATAACCESS authority
      ACCESSCTRL authority
   Group authority:
      SYSADM authority
      DBADM authority
      BINDADD authority
      CONNECT authority
      DATAACCESS authority
      ACCESSCTRL authority
Coordinating database partition number     = 0
Current database partition number          = 0
Coordinator agent process or thread ID     = 2940
Current Workload ID                        = 1
Agents stolen                              = 0
Agents waiting on locks                    = 0
Maximum associated agents                  = 3
Priority at which application agents work  = 0
Priority type                              = Dynamic

Lock timeout (seconds)                     = -1
Locks held by application                  = 0
Lock waits since connect                   = 0
Time application waited on locks (ms)      = 0
Deadlocks detected                         = 0
Lock escalations                           = 0
Exclusive lock escalations                 = 0
Number of Lock Timeouts since connected    = 0
Total time UOW waited on locks (ms)        = 0

Total sorts                                = 0
Total sort time (ms)                       = 0
Total sort overflows                       = 0

Buffer pool data logical reads             = 386430992
Buffer pool data physical reads            = 2806
Buffer pool temporary data logical reads   = 0
Buffer pool temporary data physical reads  = 0
Buffer pool data writes                    = 392209
Buffer pool index logical reads            = 415
Buffer pool index physical reads           = 21
Buffer pool temporary index logical reads  = 0
Buffer pool temporary index physical reads = 0
Buffer pool index writes                   = 0
Buffer pool xda logical reads              = 0
Buffer pool xda physical reads             = 0
Buffer pool temporary xda logical reads    = 0
Buffer pool temporary xda physical reads   = 0
Buffer pool xda writes                     = 0
Total buffer pool read time (milliseconds) = 8165
Total buffer pool write time (milliseconds)= 107930
Time waited for prefetch (ms)              = 9796
Unread prefetch pages                      = 0
Direct reads                               = 30
Direct writes                              = 10
Direct read requests                       = 3
Direct write requests                      = 1
Direct reads elapsed time (ms)             = 15
Direct write elapsed time (ms)             = 9

Number of SQL requests since last commit   = 0
Commit statements                          = 8
Rollback statements                        = 0
Dynamic SQL statements attempted           = 12
Static SQL statements attempted            = 8
Failed statement operations                = 0
Select SQL statements executed             = 1
Xquery statements executed                 = 0
Update/Insert/Delete statements executed   = 1
DDL statements executed                    = 1
Inactive stmt history memory usage (bytes) = 0
Internal automatic rebinds                 = 0
Internal rows deleted                      = 0
Internal rows inserted                     = 0
Internal rows updated                      = 0
Internal commits                           = 1
Internal rollbacks                         = 0
Internal rollbacks due to deadlock         = 0
Binds/precompiles attempted                = 0
Rows deleted                               = 0
Rows inserted                              = 280486641
Rows updated                               = 0
Rows selected                              = 1
Rows read                                  = 5530885076
Rows written                               = 280486885

UOW log space used (Bytes)                 = 0
Previous UOW completion timestamp          = 26.10.2016 13:34:47.490617
Elapsed time of last completed uow (sec.ms)= 95.425489
UOW start timestamp                        = 26.10.2016 13:34:47.725623
UOW stop timestamp                         = 26.10.2016 13:36:23.151112
UOW completion status                      = Committed - Commit Statement

Open remote cursors                        = 0
Open remote cursors with blocking          = 0
Rejected Block Remote Cursor requests      = 0
Accepted Block Remote Cursor requests      = 1
Open local cursors                         = 0
Open local cursors with blocking           = 0
Total User CPU Time used by agent (s)      = 3597.211459
Total System CPU Time used by agent (s)    = 135.471268
Host execution elapsed time                = 2106.509529

Package cache lookups                      = 9
Package cache inserts                      = 9
Application section lookups                = 14
Application section inserts                = 10
Catalog cache lookups                      = 50
Catalog cache inserts                      = 8
Catalog cache overflows                    = 0
Catalog cache high water mark              = 0

Workspace Information


Most recent operation                      = Static Commit
Most recent operation start timestamp      = 26.10.2016 13:36:23.150157
Most recent operation stop timestamp       = 26.10.2016 13:36:23.151110
Agents associated with the application     = 3
Number of hash joins                       = 1
Number of hash loops                       = 0
Number of hash join overflows              = 0
Number of small hash join overflows        = 0
Number of OLAP functions                   = 0
Number of OLAP function overflows          = 0

Statement type                             = Static SQL Statement
Statement                                  = Static Commit
Section number                             = 0
Application creator                        =
Package name                               =
Consistency Token                          =
Cursor name                                =
Statement database partition number        = 0
Statement start timestamp                  = 26.10.2016 13:36:23.150157
Statement stop timestamp                   = 26.10.2016 13:36:23.151110
Elapsed time of last completed stmt(sec.ms)= 0.000953
Total Statement user CPU time              = 0.000000
Total Statement system CPU time            = 0.000000
SQL compiler cost estimate in timerons     = 0
SQL compiler cardinality estimate          = 0
Degree of parallelism requested            = 1
Number of agents working on statement      = 1
Number of subagents created for statement  = 1
Statement sorts                            = 0
Total sort time                            = 0
Sort overflows                             = 0
Rows read                                  = 0
Rows written                               = 0
Rows deleted                               = 0
Rows updated                               = 0
Rows inserted                              = 0
Rows fetched                               = 0
Buffer pool data logical reads             = 0
Buffer pool data physical reads            = 0
Buffer pool temporary data logical reads   = 0
Buffer pool temporary data physical reads  = 0
Buffer pool index logical reads            = 0
Buffer pool index physical reads           = 0
Buffer pool temporary index logical reads  = 0
Buffer pool temporary index physical reads = 0
Buffer pool xda logical reads              = 0
Buffer pool xda physical reads             = 0
Buffer pool temporary xda logical reads    = 0
Buffer pool temporary xda physical reads   = 0
Blocking cursor                            = NO

Memory usage for application:

  Memory Pool Type                         = Application Heap
     Current size (bytes)                  = 131072
     High water mark (bytes)               = 196608
     Configured size (bytes)               = 10289152

Agent process/thread ID                    = 2940
  Agent Lock timeout (seconds)             = -1
  Memory usage for agent:

    Memory Pool Type                       = Other Memory
       Current size (bytes)                = 196608
       High water mark (bytes)             = 393216
       Configured size (bytes)             = 412292743168

Agent process/thread ID                    = 6760
  Agent Lock timeout (seconds)             = -1
  Memory usage for agent:

    Memory Pool Type                       = Other Memory
       Current size (bytes)                = 196608
       High water mark (bytes)             = 196608
       Configured size (bytes)             = 412292743168

Agent process/thread ID                    = 8656
  Agent Lock timeout (seconds)             = -1
  Memory usage for agent:

    Memory Pool Type                       = Other Memory
       Current size (bytes)                = 196608
       High water mark (bytes)             = 196608
       Configured size (bytes)             = 412292743168

если честно, то я не понял есть ли какие либо ограничения в выборке и в чем они выражаются.
Возможно следует смотреть не через snapshot а посредством иных инструментов, подскажите если что...
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39334824
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
use-se,

Сколько времени выполняется теперь запрос ниже, каков его план?

SELECT count(h.PAY_STATUS)
FROM SH1.BIG_TAB h, SH2.SMALL_TAB l
WHERE h.C1_ID = l.C1_ID
WITH UR

Он должен гораздо быстрее выполняться...
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39335207
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinsteinuse-se,

Сколько времени выполняется теперь запрос ниже, каков его план?

SELECT count(h.PAY_STATUS)
FROM SH1.BIG_TAB h, SH2.SMALL_TAB l
WHERE h.C1_ID = l.C1_ID
WITH UR

Он должен гораздо быстрее выполняться...
Запрос выполняется 19 минут.
Его план тут:
Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
574.
575.
576.
577.
578.
579.
580.
581.
582.
583.
584.
585.
586.
587.
588.
589.
590.
591.
592.
593.
594.
595.
596.
597.
598.
599.
600.
601.
602.
603.
604.
605.
606.
607.
608.
609.
610.
611.
612.
613.
614.
615.
616.
617.
618.
619.
620.
621.
622.
623.
624.
625.
626.
627.
628.
629.
630.
631.
632.
633.
634.
635.
636.
637.
638.
639.
640.
641.
642.
643.
644.
645.
646.
647.
648.
649.
650.
651.
652.
653.
654.
655.
656.
657.
658.
659.
660.
661.
662.
663.
664.
665.
666.
667.
668.
669.
670.
671.
672.
673.
674.
675.
676.
677.
678.
679.
680.
681.
682.
683.
684.
685.
686.
687.
688.
689.
690.
691.
692.
693.
694.
695.
696.
697.
698.
699.
700.
701.
702.
703.
704.
705.
706.
707.
708.
709.
710.
711.
712.
713.
714.
715.
716.
717.
718.
719.
720.
721.
722.
723.
724.
725.
726.
727.
728.
729.
730.
731.
732.
733.
734.
735.
736.
737.
738.
739.
740.
741.
742.
743.
744.
745.
746.
747.
748.
DB2 Universal Database Version 9.7, 5622-044 (c) Copyright IBM Corp. 1991, 2009
Licensed Material - Program Property of IBM
IBM DATABASE 2 Explain Table Format Tool



******************** EXPLAIN INSTANCE ********************

DB2_VERSION:       09.07.8
SOURCE_NAME:       SQLC2H23
SOURCE_SCHEMA:     NULLID  
SOURCE_VERSION:      
EXPLAIN_TIME:      2016-10-27-10.56.52.499001
EXPLAIN_REQUESTER: SH1  

Database Context:
----------------
	Parallelism:          Intra-Partition Parallelism
	CPU Speed:            3,306410e-007
	Comm Speed:           0
	Buffer Pool size:     74411200
	Sort Heap size:       100000
	Database Heap size:   300000
	Lock List size:       8892802
	Maximum Lock List:    98
	Average Applications: 50
	Locks Available:      278878272

Package Context:
---------------
	SQL Type:           Dynamic
	Optimization Level: 5
	Blocking:           Block All Cursors
	Isolation Level:    Uncommitted Read



---------------- STATEMENT 1  SECTION 201 ----------------
	QUERYNO:       14
	QUERYTAG:      CLP                 
	Statement Type:   Select
	Updatable:        No
	Deletable:        No
	Query Degree:     -1

Original Statement:
------------------
SELECT count(h.PAY_STATUS) 
FROM SH1.BIG_TAB h, SH2.SMALL_TAB l 
WHERE h.C1_ID = l.C1_ID 
     WITH UR


Optimized Statement:
-------------------
SELECT Q4.$C0 
FROM 
   (SELECT COUNT(*) 
   FROM 
      (SELECT $RID$ 
      FROM SH2.SMALL_TAB AS Q1, SH1.BIG_TAB AS Q2 
      WHERE (Q2.C1_ID = Q1.C1_ID)) AS Q3) AS Q4

Access Plan:
-----------
	Total Cost: 		1,56513e+008
	Query Degree:		40

              Rows 
             RETURN
             (   1)
              Cost 
               I/O 
               |
                1 
             GRPBY 
             (   2)
          1,56513e+008 
          8,67065e+007 
               |
                1 
             LTQ   
             (   3)
          1,56513e+008 
          8,67065e+007 
               |
                1 
             GRPBY 
             (   4)
          1,56513e+008 
          8,67065e+007 
               |
          1,69059e+008 
             HSJOIN
             (   5)
          1,56499e+008 
          8,67065e+007 
         /-----+------\
  5,24234e+009     6,47055e+006 
     TBSCAN           TBSCAN
     (   6)           (   7)
  1,56039e+008        38146,2 
  8,66775e+007         29031 
       |                |
  5,24234e+009     6,47055e+006 
 TABLE: SH1    TABLE: SH2 
 BIG_TAB    SMALL_TAB
       Q2               Q1



Extended Diagnostic Information:
--------------------------------

No extended Diagnostic Information for this statement.


Plan Details:
-------------


	1) RETURN: (Return Result)
		Cumulative Total Cost: 		1,56513e+008
		Cumulative CPU Cost: 		1,08923e+013
		Cumulative I/O Cost: 		8,67065e+007
		Cumulative Re-Total Cost: 	1,56513e+008
		Cumulative Re-CPU Cost: 	1,08923e+013
		Cumulative Re-I/O Cost: 	8,67065e+007
		Cumulative First Row Cost: 	1,56513e+008
		Estimated Bufferpool Buffers: 	8,66775e+007

		Arguments:
		---------
		BLDLEVEL: (Build level)
			DB2 v9.7.800.717 : s130316
		HEAPUSE : (Maximum Statement Heap Usage)
			96 Pages
		PREPTIME: (Statement prepare time)
			       201 milliseconds
		STMTHEAP: (Statement heap size)
			4096

		Input Streams:
		-------------
			8) From Operator #2

				Estimated number of rows: 	1
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q5.$C0


	2) GRPBY : (Group By)
		Cumulative Total Cost: 		1,56513e+008
		Cumulative CPU Cost: 		1,08923e+013
		Cumulative I/O Cost: 		8,67065e+007
		Cumulative Re-Total Cost: 	1,56513e+008
		Cumulative Re-CPU Cost: 	1,08923e+013
		Cumulative Re-I/O Cost: 	8,67065e+007
		Cumulative First Row Cost: 	1,56513e+008
		Estimated Bufferpool Buffers: 	8,66775e+007

		Arguments:
		---------
		AGGMODE : (Aggregation Mode)
			FINAL
		GROUPBYC: (Group By columns)
			FALSE
		GROUPBYN: (Number of Group By columns)
			0
		ONEFETCH: (One Fetch flag)
			FALSE

		Input Streams:
		-------------
			7) From Operator #3

				Estimated number of rows: 	1
				Number of columns: 		0
				Subquery predicate ID: 		Not Applicable


		Output Streams:
		--------------
			8) To Operator #1

				Estimated number of rows: 	1
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q5.$C0


	3) TQ    : (Table Queue)
		Cumulative Total Cost: 		1,56513e+008
		Cumulative CPU Cost: 		1,08923e+013
		Cumulative I/O Cost: 		8,67065e+007
		Cumulative Re-Total Cost: 	1,56513e+008
		Cumulative Re-CPU Cost: 	1,08923e+013
		Cumulative Re-I/O Cost: 	8,67065e+007
		Cumulative First Row Cost: 	1,56513e+008
		Estimated Bufferpool Buffers: 	8,66775e+007

		Arguments:
		---------
		LISTENER: (Listener Table Queue type)
			FALSE
		TQ TYPE : (Table queue type)
			LOCAL
		TQDEGREE: (Degree of Intra-Partition parallelism)
			40
		TQMERGE : (Merging Table Queue flag)
			FALSE
		TQREAD  : (Table Queue Read type)
			READ AHEAD
		UNIQUE  : (Uniqueness required flag)
			FALSE

		Input Streams:
		-------------
			6) From Operator #4

				Estimated number of rows: 	1
				Number of columns: 		0
				Subquery predicate ID: 		Not Applicable


		Output Streams:
		--------------
			7) To Operator #2

				Estimated number of rows: 	1
				Number of columns: 		0
				Subquery predicate ID: 		Not Applicable


	4) GRPBY : (Group By)
		Cumulative Total Cost: 		1,56513e+008
		Cumulative CPU Cost: 		1,08923e+013
		Cumulative I/O Cost: 		8,67065e+007
		Cumulative Re-Total Cost: 	1,56513e+008
		Cumulative Re-CPU Cost: 	1,08923e+013
		Cumulative Re-I/O Cost: 	8,67065e+007
		Cumulative First Row Cost: 	1,56513e+008
		Estimated Bufferpool Buffers: 	8,66775e+007

		Arguments:
		---------
		AGGMODE : (Aggregation Mode)
			PARTIAL
		GROUPBYC: (Group By columns)
			FALSE
		GROUPBYN: (Number of Group By columns)
			0
		ONEFETCH: (One Fetch flag)
			FALSE

		Input Streams:
		-------------
			5) From Operator #5

				Estimated number of rows: 	1,69059e+008
				Number of columns: 		0
				Subquery predicate ID: 		Not Applicable


		Output Streams:
		--------------
			6) To Operator #3

				Estimated number of rows: 	1
				Number of columns: 		0
				Subquery predicate ID: 		Not Applicable


	5) HSJOIN: (Hash Join)
		Cumulative Total Cost: 		1,56499e+008
		Cumulative CPU Cost: 		1,085e+013
		Cumulative I/O Cost: 		8,67065e+007
		Cumulative Re-Total Cost: 	1,56499e+008
		Cumulative Re-CPU Cost: 	1,085e+013
		Cumulative Re-I/O Cost: 	8,67065e+007
		Cumulative First Row Cost: 	1,56499e+008
		Estimated Bufferpool Buffers: 	8,66775e+007

		Arguments:
		---------
		BITFLTR : (Hash Join Bit Filter used)
			FALSE
		EARLYOUT: (Early Out flag)
			NONE
		HASHCODE: (Hash Code Size)
			24 BIT
		HASHTBSZ: (Number of hash table entries)
			6470552
		TEMPSIZE: (Temporary Table Page Size)
			4096
		TUPBLKSZ: (Tuple Block Size (bytes))
			16000

		Predicates:
		----------
		2) Predicate used in Join, 
			Comparison Operator: 		Equal (=)
			Subquery Input Required: 	No
			Filter Factor: 			4,98394e-009

			Predicate Text:
			--------------
			(Q2.C1_ID = Q1.C1_ID)



		Input Streams:
		-------------
			2) From Operator #6

				Estimated number of rows: 	5,24234e+009
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.C1_ID

			4) From Operator #7

				Estimated number of rows: 	6,47055e+006
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q1.C1_ID


		Output Streams:
		--------------
			5) To Operator #4

				Estimated number of rows: 	1,69059e+008
				Number of columns: 		0
				Subquery predicate ID: 		Not Applicable


	6) TBSCAN: (Table Scan)
		Cumulative Total Cost: 		1,56039e+008
		Cumulative CPU Cost: 		9,56255e+012
		Cumulative I/O Cost: 		8,66775e+007
		Cumulative Re-Total Cost: 	1,56039e+008
		Cumulative Re-CPU Cost: 	9,56255e+012
		Cumulative Re-I/O Cost: 	8,66775e+007
		Cumulative First Row Cost: 	12,8677
		Estimated Bufferpool Buffers: 	8,66775e+007

		Arguments:
		---------
		JN INPUT: (Join input leg)
			OUTER
		MAXPAGES: (Maximum pages for prefetch)
			ALL
		PREFETCH: (Type of Prefetch)
			SEQUENTIAL
		ROWLOCK : (Row Lock intent)
			NONE
		SCANDIR : (Scan Direction)
			FORWARD
		SCANGRAN: (Intra-Partition Parallelism Scan Granularity)
			2
		SCANTYPE: (Intra-Partition Parallelism Scan Type)
			LOCAL PARALLEL
		SCANUNIT: (Intra-Partition Parallelism Scan Unit)
			PAGE
		SPEED   : (Assumed speed of scan, in sharing structures)
			FAST
		TABLOCK : (Table Lock intent)
			INTENT NONE
		TBISOLVL: (Table access Isolation Level)
			UNCOMMITTED READ
		THROTTLE: (Scan may be throttled, for scan sharing)
			TRUE
		VISIBLE : (May be included in scan sharing structures)
			TRUE
		WRAPPING: (Scan may start anywhere and wrap)
			TRUE

		Input Streams:
		-------------
			1) From Object SH1.BIG_TAB

				Estimated number of rows: 	5,24234e+009
				Number of columns: 		2
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.$RID$+Q2.C1_ID


		Output Streams:
		--------------
			2) To Operator #5

				Estimated number of rows: 	5,24234e+009
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q2.C1_ID


	7) TBSCAN: (Table Scan)
		Cumulative Total Cost: 		38146,2
		Cumulative CPU Cost: 		1,13216e+010
		Cumulative I/O Cost: 		29031
		Cumulative Re-Total Cost: 	3684,1
		Cumulative Re-CPU Cost: 	1,11423e+010
		Cumulative Re-I/O Cost: 	0
		Cumulative First Row Cost: 	9,0773
		Estimated Bufferpool Buffers: 	29031

		Arguments:
		---------
		JN INPUT: (Join input leg)
			INNER
		MAXPAGES: (Maximum pages for prefetch)
			ALL
		PREFETCH: (Type of Prefetch)
			SEQUENTIAL
		ROWLOCK : (Row Lock intent)
			NONE
		SCANDIR : (Scan Direction)
			FORWARD
		SCANGRAN: (Intra-Partition Parallelism Scan Granularity)
			2
		SCANTYPE: (Intra-Partition Parallelism Scan Type)
			LOCAL PARALLEL
		SCANUNIT: (Intra-Partition Parallelism Scan Unit)
			PAGE
		SPEED   : (Assumed speed of scan, in sharing structures)
			FAST
		TABLOCK : (Table Lock intent)
			INTENT NONE
		TBISOLVL: (Table access Isolation Level)
			UNCOMMITTED READ
		THROTTLE: (Scan may be throttled, for scan sharing)
			TRUE
		VISIBLE : (May be included in scan sharing structures)
			TRUE
		WRAPPING: (Scan may start anywhere and wrap)
			TRUE

		Input Streams:
		-------------
			3) From Object SH2.SMALL_TAB

				Estimated number of rows: 	6,47055e+006
				Number of columns: 		2
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q1.$RID$+Q1.C1_ID


		Output Streams:
		--------------
			4) To Operator #5

				Estimated number of rows: 	6,47055e+006
				Number of columns: 		1
				Subquery predicate ID: 		Not Applicable

				Column Names:
				------------
				+Q1.C1_ID


Objects Used in Access Plan:
---------------------------

	Schema: SH1  
	Name: 	BIG_TAB
	Type: 	Table

	Schema: SH2 
	Name: 	SMALL_TAB
	Type: 	Table

Extended Statistics Information:
--------------------------------

Tablespace Context:
-------------------
		Name:                                         	T_H_TS_IDX
		Overhead:                                     	12.670000 
		Transfer Rate:                                	0.180000 
		Prefetch Size:                                	1920 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

		Name:                                         	T_H_TS_TBLS     
		Overhead:                                     	12.670000 
		Transfer Rate:                                	0.180000 
		Prefetch Size:                                	1920 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

		Name:                                         	GVAPTABS          
		Overhead:                                     	9.000000 
		Transfer Rate:                                	0.060000 
		Prefetch Size:                                	192 
		Extent Size:                                  	32 
		Type:                                         	Database managed
		Partition Group Name:                         	NULLP
		Buffer Pool Identifier:                       	0 

Base Table Statistics:
----------------------
Name  : 	BIG_TAB
Schema: 	SH1  
		Number of Columns:                            	9 
		Number of Pages with Rows:                    	86677492
		Number of Pages:                              	86677492
		Number of Rows:                               	5242341755
		Table Overflow Record Count:                  	0
		Width of Rows:                                	40 
		Time of Creation:                             	2015-05-02-21.32.08.419004
		Last Statistics Update:                       	2016-10-12-11.06.17.653000
		Primary Tablespace:                           	T_H_TS_TBLS     
		Tablespace for Indexes:                       	T_H_TS_IDX
		Tablespace for Long Data:                     	NULLP
		Number of Referenced Columns:                 	2 
		Number of Indexes:                            	1 
		Volatile Table:                               	No
		Number of Active Blocks:                      	-1
		Number of Column Groups:                      	0 
		Number of Data Partitions:                    	1 
		Average Row Compression Ratio:                	-1.000000 
		Percent Rows Compressed:                      	-1.000000 
		Average Compressed Row Size:                  	-1 
		Statistics Type:                              	U

	Column Information:
	--------------------
		Number:                                       	4 
		Name:                                         	PAY_STATUS
		Statistics Available:                         	No

	Column Information:
	--------------------
		Number:                                       	1 
		Name:                                         	C1_ID
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	BIGINT
			Maximum column length:                        	8 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	200644459
			Average column length:                        	8 
			Number of most frequent values:               	10 
			Number of quantiles:                          	20 
			Second highest data value:                    	268783998
			Second lowest data value:                     	1067929
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Frequency Statistics:
			Valcount	Value 
			--------------------------------
			1299 		36438362		
			1288 		36447884		
			1131 		33866795		
			1125 		32505228		
			1112 		33812528		
			1106 		84402767		
			1084 		78760604		
			1083 		41686576		
			1077 		33504966		
			1074 		83684924		

			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			9 		1067928		1
			-1535840067 		148562089		96135473
			-1535839970 		148562090		96135474
			-1259927333 		156774640		103673316
			-1259927325 		156774641		103673317
			-984014650 		166080005		112142940
			-984014573 		166080006		112142941
			-708101903 		176682081		121106182
			-708101879 		176682082		121106183
			-432189190 		185813489		129730788
			-432189060 		185813490		129730789
			-156276450 		196955705		139491342
			-156276427 		196955706		139491343
			119636278 		208728225		149829902
			119636290 		208728226		149829903
			395549005 		226710331		162637745
			395549032 		226710332		162637746
			671461724 		243685423		178698359
			671461737 		243685424		178698360
			947374459 		268783999		200644459

	Indexes defined on the table:
	-----------------------------
	Name  :	BIG_TAB_PK
	Schema:	SH1  
		Unique Rule:                                  	Primary key index
		Used in Operator:                             	No
		Page Fetch Pairs:                             	Available
		Number of Columns:                            	3 
		Index Leaf Pages:                             	57207556
		Index Tree Levels:                            	5 
		Index First Key Cardinality:                  	200644459
		Index Full Key Cardinality:                   	5242341755
		Index Cluster Ratio:                          	-1 
		Index Cluster Factor:                         	0.686509 
		Time of Creation:                             	2015-05-02-21.32.08.528002
		Last Statistics Update:                       	2016-10-12-11.06.17.653000
		Index Sequential Pages:                       	28302903
		Index First 2 Keys Cardinality:               	5241031435
		Index First 3 Keys Cardinality:               	5242341755
		Index First 4 Keys Cardinality:               	-1
		Index Avg Gap between Sequences:              	222959.000000 
		Fetch Avg Gap between Sequences:              	-1.000000 
		Index Avg Sequential Pages:                   	786191.000000 
		Fetch Avg Sequential Pages:                   	-1.000000 
		Index Avg Random Pages:                       	586145.000000 
		Fetch Avg Random Pages:                       	-1.000000 
		Index RID Count:                              	5321149234
		Index Deleted RID Count:                      	73837652
		Index Empty Leaf Pages:                       	55765
		Avg Partition Cluster Ratio:                  	-1 
		Avg Partition Cluster Factor:                 	-1.000000 
		Data Partition Cluster Factor:                	1.000000 
		Data Partition Page Fetch Pairs:              	Not Available

		Page Fetch Pairs information:
		-----------------------------
		Number of Page Fetch Pairs:                   	11 

				Buffer Size		Page Fetches
		--------------------------------------------------------
		Pair 1:  	100			1039302010
		Pair 2:  	350052			416376800
		Pair 3:  	9451404			206844276
		Pair 4:  	22053276			118214180
		Pair 5:  	31504680			98877758
		Pair 6:  	41656188			91777118
		Pair 7:  	53207904			89230548
		Pair 8:  	67910088			87250817
		Pair 9:  	86112792			86889824
		Pair 10:  	86462766			86462766
		Pair 11:  	86462766			86462766

Base Table Statistics:
----------------------
Name  : 	SMALL_TAB
Schema: 	SH2 
		Number of Columns:                            	1 
		Number of Pages with Rows:                    	29031
		Number of Pages:                              	29031
		Number of Rows:                               	6470552
		Table Overflow Record Count:                  	0
		Width of Rows:                                	14 
		Time of Creation:                             	2016-09-09-01.00.34.218012
		Last Statistics Update:                       	2016-09-09-01.21.43.373004
		Primary Tablespace:                           	GVAPTABS          
		Tablespace for Indexes:                       	NULLP
		Tablespace for Long Data:                     	NULLP
		Number of Referenced Columns:                 	1 
		Number of Indexes:                            	0 
		Volatile Table:                               	No
		Number of Active Blocks:                      	-1
		Number of Column Groups:                      	0 
		Number of Data Partitions:                    	1 
		Average Row Compression Ratio:                	-1.000000 
		Percent Rows Compressed:                      	-1.000000 
		Average Compressed Row Size:                  	-1 
		Statistics Type:                              	U

	Column Information:
	--------------------
		Number:                                       	1 
		Name:                                         	C1_ID
		Statistics Available:                         	Yes

		Column Statistics:
		------------------
			Schema name of the column type:               	SYSIBM  
			Name of column type:                          	BIGINT
			Maximum column length:                        	8 
			Scale for decimal or timestamp column:        	0 
			Number of distinct column values:             	6470552
			Average column length:                        	8 
			Number of most frequent values:               	-1 
			Number of quantiles:                          	20 
			Second highest data value:                    	268615579
			Second lowest data value:                     	1537590
			Column sequence in partition key:             	0 
			Average number of sub-elements:               	-1 
			Average length of delimiters:                 	-1 

		Column Distribution Statistics:
		-------------------------------
			Quantile Statistics:
			Valcount 	Value 		Distcount 
			----------------------------------------------
			1 		1142011		1
			340555 		87288721		340555
			681111 		106824791		681111
			1021666 		132208218		1021666
			1362221 		144856874		1362221
			1702777 		152931756		1702777
			2043332 		164940760		2043332
			2383888 		178662943		2383888
			2724443 		190381699		2724443
			3064998 		199993277		3064998
			3405554 		211764305		3405554
			3746109 		231107293		3746109
			4086664 		237462093		4086664
			4427220 		241699507		4427220
			4767775 		246905464		4767775
			5108331 		252268977		5108331
			5448886 		257246078		5448886
			5789441 		261978211		5789441
			6129997 		266292888		6129997
			6470552 		268615580		6470552



я немного не понял "быстрее" относительно какого запроса,
с агрегированием данных, но выполненным ранее?
Дело в том, что в базовом запросе данные клиенту тоже не возвращаются,
а вставляются в таблицу, выглядит это примерно так:
Код: plsql
1.
2.
db2 +c alter table res activate not logged initially with empty table
db2 insert into res select c1_id, c2_history_date, pay_status from big_tab h, small_tab l where h.c1_id-lc1_id with ur

и тесты я соответственно делаю такие же. Опять же я немного не понимаю суть intra_parallel и как DB2 выбирает эту параллельность.
К примеру сейчас, для теста, я разбил TS на 10 контейнеров, раскидал их по разным логическим дискам (правда в пределах одного массива на СХД), 40 CPU (условно), все свободно, но насколько я понял из плана, параллельность = 2. ???
Практически цель вопроса, ускорить выгрузку, достигнута, 35 минут это хороший даже отличный результат, за что Вам и всем кто принимал участие большое спасибо, но есть одна небольшая проблема, теперь поселился червячок сомнения, а вдруг, что то еще не так и возможно производильность может быть и выше )))
Вот кстати, еще 1 вопрос сомнений. Сейчас (на БД, СХД DS5100) стоит: OVERHEAD=12.67, TRANSFERRATE=0.18 для TS, и фактически эти параметры переносятся вместе c backup на копии для тестов, Storwize v7000 и FlashSystem.
Я думаю, что эти параметры влияют только на выбор планов, но вдруг и на что то еще?
1) Нужно ли менять эти 2 параметра при переносе БД?
2)Какова методика расчета этих параметров для БД или нужно искать в документации на железо, может просто есть где то рекомендации IBM где в табличке приведены DB2 & СХД?
Вот такие сомнения.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39335515
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
use-se,

Можете попробовать:
Код: sql
1.
2.
db2 declare c1 cursor for select c1_id, c2_history_date, pay_status from big_tab h, small_tab l where h.c1_id-lc1_id with ur
db2 load from c1 of cursor messages res.load.msg replace reset dictionary into res nonrecoverable


OVERHEAD, TRANSFERRATE:
Table space impact on query optimization

В плане у вас:
Код: plaintext
Query Degree:		40
Параллелизм выбирается согласно значению переменной сессии CURRENT DEGREE .
db2 выделяет для работы N агентов, которые патаются выполнять работу параллельно, передавая результаты своей работы координирующему агенту.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39335603
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
use-se,


38 минут однозначно долго. как я понял хеш таблица на диск пишется, т.е. HJ вместо read-ahead по большой таблице читает то временную хеш-таблицу, то большую таблицу. надо добиться, что бы хеш таблица от чтения маленькой таблицы умещалась в память, тогда еще в несколько раз быстрее будет.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39335619
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!use-se,


38 минут однозначно долго. как я понял хеш таблица на диск пишется, т.е. HJ вместо read-ahead по большой таблице читает то временную хеш-таблицу, то большую таблицу. надо добиться, что бы хеш таблица от чтения маленькой таблицы умещалась в память, тогда еще в несколько раз быстрее будет.
Не пишется хеш ни маленькой не большой таблицы, иначе была бы заметна запись на диск в темповый TS.
Да и из плана видно, что inner(правая) это маленькая таблица.
И на снимке я не увидел чтобы как то использовалась временная область.
Однако, я подумал, что 38 минут это хорошо, Вы сказали - плохо. )))
Опять есть о чем думать. ))
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39335634
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinsteinuse-se,

Можете попробовать:
Код: sql
1.
2.
db2 declare c1 cursor for select c1_id, c2_history_date, pay_status from big_tab h, small_tab l where h.c1_id-lc1_id with ur
db2 load from c1 of cursor messages res.load.msg replace reset dictionary into res nonrecoverable


OVERHEAD, TRANSFERRATE:
Table space impact on query optimization

В плане у вас:
Код: plaintext
Query Degree:		40
Параллелизм выбирается согласно значению переменной сессии CURRENT DEGREE .
db2 выделяет для работы N агентов, которые патаются выполнять работу параллельно, передавая результаты своей работы координирующему агенту.
Пробовал я ранее делать Load, параметры были немного другими.
Там другая проблема, я уже писал об, виснет наглухо процесс db2syscs, вот так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
D:\tmp>db2pd -util show detail
 
Database Partition 0 -- Active -- Up 1 days 05:16:14 -- Date 2016-10-27-16.18.06.017000
 
Utilities:
Address            ID         Type                   State      Invoker    Priority   StartTime           DBName   NumPhases  CurPhase   Description
0x0000000012EBEA80 3          LOAD                   0          0          0          Thu Oct 27 16:11:56 DB     2           2           [LOADID: 2940.2016-10-27-16.11.56.544006.0 (40;20)] [*LOCAL.INST.161026094524] OFFLINE LOAD CURSOR AUTOMATIC INDEXING REPLACE NON-RECOVERABLE SH2.res
 
Progress:
Address            ID         PhaseNum   CompletedWork                TotalWork                    StartTime           Description
0x0000000012EBEE28 3          1          0 bytes                      0 bytes                      Thu Oct 27 16:11:56 SETUPl
0x0000000012EBEFE0 3          2          0 rows                       0 rows                       Thu Oct 27 16:11:57 LOAD
 
D:\tmp>db2 list utilities show detail
<...висит...>
час примерно будет так висеть, потом отвиснет и загрузки пойдут нормально. Помогает если ставить опцию COPY YES, но тоже не всегда. Поэтому на продуктиве делаю load только когда есть сервисный интервал.

Про параметры TS видел, но думал может есть рекомендации конкретно по каждому СХД.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39335661
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
use-se,

Оттаял процесс, суммарно load длился 1 час 16 м
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39336156
mitek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
use-seВот кстати, еще 1 вопрос сомнений. Сейчас (на БД, СХД DS5100) стоит: OVERHEAD=12.67, TRANSFERRATE=0.18 для TS, и фактически эти параметры переносятся вместе c backup на копии для тестов, Storwize v7000 и FlashSystem.
Я думаю, что эти параметры влияют только на выбор планов, но вдруг и на что то еще?
1) Нужно ли менять эти 2 параметра при переносе БД?
2)Какова методика расчета этих параметров для БД или нужно искать в документации на железо, может просто есть где то рекомендации IBM где в табличке приведены DB2 & СХД?


Вот здесь (правда для SAP'а)

для IBM Flash System рекомендуется :
OVERHEAD = 0.3
TRANSFERRATE = 0.1

Для сторвайзов будет зависеть от того на каком конкретно пуле (HDD, SSD, гибридный) будут лежать соответствующие VDISK'и
Также для сторвайзов рекомендуется использовать число VDISK'ов кратное 4-ем.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39336723
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Параметры OVERHEAD и TRANSFERRATE используются для вычисления стоимости.
Пример
OVERHEAD=12.67 миллисекунд
TRANSFERRATE=0.18 миллисекунд на страницу
размер страницы 4К
размер экстента 4 страницы

Тогда в 1 мебайте 256 страниц, при линейном чтении (без overhead) это оценивается, что прочитается примерно за 256*0.18 = 46 миллисекунд, т.е. скорость оценивается 21 мег в секунду.

Но если мы прочитаем это постранично случайным доступом, время оценивается как 256*(12.57+0.18)= 3264 миллисекунд (3.264 секунды), в 71 раз медленнее линейного чтения.

Но если мы прочитаем это поэкстентно, время оценивается как 64*12.57+256*0.18 = 851 миллисекунда, в 18 раз медленнее линейного чтения.

DB2-шные таймероны, в которых указана стоимость, как я понимаю, это и есть расчётные миллисекунды.

Эти цифры
OVERHEAD=12.67 миллисекунд
TRANSFERRATE=0.18 миллисекунд на страницу
не мне кажутся адекватными для данного случая.

Но я не знаю, как получить параметры, особенно на системах хранения, кроме как воспользовавшись как IOmeter'ом или ORION'ом (а ORION ныне идёт только в комплекте с Oracle Server).

Надо ещё прибавить, что чем больше одновременных запросов (из разных процессов или нитей) наваливается на диски, тем OVERHEAD больше (растёт в разы), но оптимизатор про это не знает.

Ну, и в статье, которую я недавно читал про оптимизатор (в поисках DB2 LEO), автор заявил, что эти цифры не очень важны, а настоящая проблема в оценке cardinality у предикатов. В самом деле, от этого очень сильно зависит, когда индекс нужен, когда не нужен, когда nested loop join использовать и когда hash join и в каком порядке. Жестокая борьба ведётся (Ораклем!), но результаты ... неоднозначные.

Ещё надо иметь в виду
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39336725
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
use-seMark Barinsteinuse-se,

Сколько времени выполняется теперь запрос ниже, каков его план?

SELECT count(h.PAY_STATUS)
FROM SH1.BIG_TAB h, SH2.SMALL_TAB l
WHERE h.C1_ID = l.C1_ID
WITH UR

Он должен гораздо быстрее выполняться...
Запрос выполняется 19 минут.

А вставка 30. Напрашивается мысль о сильном влиянии чистки грязного буферного пула. Но нужен мониторинг диска и процессоров, чтобы это подтвердить.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39338951
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mitekuse-seВот кстати, еще 1 вопрос сомнений. Сейчас (на БД, СХД DS5100) стоит: OVERHEAD=12.67, TRANSFERRATE=0.18 для TS, и фактически эти параметры переносятся вместе c backup на копии для тестов, Storwize v7000 и FlashSystem.
Я думаю, что эти параметры влияют только на выбор планов, но вдруг и на что то еще?
1) Нужно ли менять эти 2 параметра при переносе БД?
2)Какова методика расчета этих параметров для БД или нужно искать в документации на железо, может просто есть где то рекомендации IBM где в табличке приведены DB2 & СХД?


Вот здесь (правда для SAP'а)

для IBM Flash System рекомендуется :
OVERHEAD = 0.3
TRANSFERRATE = 0.1

Для сторвайзов будет зависеть от того на каком конкретно пуле (HDD, SSD, гибридный) будут лежать соответствующие VDISK'и
Также для сторвайзов рекомендуется использовать число VDISK'ов кратное 4-ем.
Большое спасибо.
Попробую.
...
Рейтинг: 0 / 0
Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
    #39338990
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor Metelitsause-seпропущено...

Запрос выполняется 19 минут.

А вставка 30. Напрашивается мысль о сильном влиянии чистки грязного буферного пула. Но нужен мониторинг диска и процессоров, чтобы это подтвердить.
Мне кажется, что при использовании агрегатных функци, DB2 несколько иначе
обрабатывает строки, возможно я ошибаюсь.
Если вместо вставки в таблицу использовать экспорт на диск,
то суммарно время выборки незначительно но возрастает.
...
Рейтинг: 0 / 0
99 сообщений из 99, показаны все 4 страниц
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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