Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Таблица с состоянии TBSCAN
|
|||
|---|---|---|---|
|
#18+
Добрый день. в общем ситуация следующая. Имеем математику на WebSphere+DB2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 18:06 |
|
||
|
Таблица с состоянии TBSCAN
|
|||
|---|---|---|---|
|
#18+
продолжаю (control+enter) нажал математика выполняет массовые операции програмисты (стороняя организация) получил план запроса и видно что одна таблица в состоянии TBSCAN собрал статистику сделал реорганизацию перестроил индексы запустил приложение а план запросов не поменялся что можно сделать в данной ситуации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 18:14 |
|
||
|
Таблица с состоянии TBSCAN
|
|||
|---|---|---|---|
|
#18+
Chumakov_JA, может какой индекс подстроить... от запроса зависит, а если табличка маленькая, так пусть её сканирует... а так вот прям - кто её знает! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 21:12 |
|
||
|
Таблица с состоянии TBSCAN
|
|||
|---|---|---|---|
|
#18+
Chumakov_JA, Вопрос - нужно ли что-то делать. Table scan может быть не такой уж плохой операцией и может быть _значительно_ эффективней доступа по индексу. Например, согласно собранной статистике запрос выбирает (или "может выбирать", тут может играть роль, как условие обозначено в предикате) 30%, ну пусть даже 10% всех записей по таблице. Допустим, в среднем на странице располагается 50 записей, т.е. каждая страница с большой степенью вероятности содержит искомые записи, т.е. всё равно придётся прочитать всю/практически всю таблицу с диска. В этом случае значительно эффективней читать экстентами (а скорее всего параллельно несолько экстентов), чем идти по индексу и выдирать по одной странице с разных мест "диска". Приведите запрос целиком и расскажите, какой план Вы ожидали бы увидеть. BTW 162 "попугая" - это "ни о чём". Вопрос - во что они выливаются далее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 21:50 |
|
||
|
Таблица с состоянии TBSCAN
|
|||
|---|---|---|---|
|
#18+
CawaSPb, Совершенно согласен: 162 меньше чем 145667 и больше чем 11 в текущей системе измерений. Надо крепко подумать над метрикой определения мощности запроса при переходе в неэвклидовое пространство. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2014, 21:57 |
|
||
|
Таблица с состоянии TBSCAN
|
|||
|---|---|---|---|
|
#18+
knudsen, Вот хиханьки да хаханьки, но кикие бы timeron'ы ни были отвлечённые, а на практике 150 - сродни потоковому чтению порядка сотни страниц (несколько экстентов) или 5 - 10 выдёргиваниям записи по индексу. Т.е. само по себе - "ни о чём". Вопрос - во что это выливается далее. Если там NLJOIN (что скорее всего, иначе бы и вопросов не возникло) с таблицей с хорошей мощностью, то эти timeron'ы уже умножаются. На самом деле не совсем умножаются, т.к. видно, что сканируемая таблица хоть и не вырождена, но невелика. Т.е. с первого захода подчитается в пул и дальше будет сканироваться там, заметно, но не фатально поглощая лишь CPU Time. Выделяться такой запрос безумным количеством rows read с не настолько же ужасным общим временем выполнения. Хороший индекс по такой таблице сделает ситуацию лучше и сведёт CPU time к незначительным величинам. Я бы поставил 9 к 1, что ситуация именно такова, но чего гадать на кофейной гуще, проще спросить, что там на самом деле. Скорее всего или селективность у индексов не очень хорошая, или в предикате есть преобразование индексируемой колонки. Второе вероятней - индексы есть и даже "перестраивались" (статистику, кстати, стоило собирать после перестройки индексов). Даже кастинг типов рушит возможность использования индекса. Т.е. если есть таблица T1 с колонкой COL1, по которой построен индекс, то предикат "WHERE F1(COL1) = <somefing>" использовать этот индекс не будет, что логично. Нужно: а) или "WHERE F1(COL1) = <somefing>" преобразовать в "WHERE COL1 = F2(<somefing>)", где F2(...) - ф-я, обратная к F1(...) (если такая вообще существует). б) или строить индекс по выражению (до 10-ки материлизуя выражение в отдельной вычислимой колонке, с 10.1 или 10.5, строя индекс просто по выражению). В любом случае танцевать надо от самого запроса и ожиданий автора топика (что в какой-то мере может охарактеризовать имеющиеся данные - ведь ожидания на чём-то основываются). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2014, 03:14 |
|
||
|
Таблица с состоянии TBSCAN
|
|||
|---|---|---|---|
|
#18+
CawaSPbTable scan может быть не такой уж плохой операцией и может быть _значительно_ эффективней доступа по индексу. Воистину! :) Вот намедни прилетел на ревью один star query : в таблице фактов всего-то 1.4 млн. записей, в плане все кошерно - сплошной IXSCAN, cost=1400, а рантайм устремляется в бесконечность (дождался один раз - 8900 сек. ). В db2top при выполнении видно ~6000 IndexReads/sec. Дропнул индекс из плана по факт-таблице, в плане стал TBSCAN, cost = 1800000 ;-), а рантайм .....5 сек. :) Так что действительно не все индексы одинаково полезны, а фулсканы вреднЫ :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2014, 11:01 |
|
||
|
Таблица с состоянии TBSCAN
|
|||
|---|---|---|---|
|
#18+
sysdummy1, для этого и строим планы. Но план, построенный на явных и неявных предикатах м.б. сильно разным. Я устал объяснять разработчикам простую вещь, что БД есть отражение жизни. Если у нас, к примеру, 100 папок, в которых лежат договора с клиентами и упорядочены они по номеру договора (любимый счетчик), то наличие еще одной папки с индексом клиент-папка никак не поможет нам быстрее собрать инфу по договорам с конкрентным клиентом - особенно если они присутствуют во всех ста папках. Да и картинка ни о чем без запроса и общего плана, поскольку нужно понять по каким предикатам делим/пересекаем множества. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2014, 16:58 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=38741116&tid=1600997]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
126ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 289ms |
| total: | 506ms |

| 0 / 0 |
