|
|
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Есть две таблицы 1ая - примерно 400 тыс записей, 2ая примерно 250 тыс. Простой подсчет записей при объединении идет долго... а подсчет записей при проверке опеределенного поля вообще идет 130-160 секунд. Машина на которой крутиться Оракл - майнфрейм IBM-9672/OS390 - можно ли как то оптимизировать запросы?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2003, 18:05 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Наверное напильником, а если серьезно то скажи хотя бы, версию оракла, структуру таблиц, индексы, запрос, план ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2003, 18:35 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Версия 8.1.5 Две таблицы - разделен файл переменной длины. 1ая таблица содержит постоянную часть файла. 2ая соответственно переменную. Две базы объединяються по ключу, номер записи в постоянной части файла. Запрос вида "select * from in01c,in01v where in01c.id=in01v.id(+)" выполняется около 10 секунд. добавление условия "and in01c.kv = 'чемуто' " выполняется более 15 минут!!!!! в таблице после объединения примерно 400 тыс записей. Планируемый результат - отбор записей по определенному условию и вывод в файл, который затем будет распечатан, после подготовки соответствующих шапок... можно ли ускорить работу запроса и как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2003, 19:04 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Индекс на id у тебя есть? В обеих таблицах? А индекс на in01c.kv? Еще - ставь в условии where ограничивающие условия до вязки таблиц. Пока всё, думаю, этого достаточно будет. - Более того, скажи, зачем может понадобиться запрос, возвращающий 400000 все записей? - Может структура хранения недостаточно продумана? - Может таблицы надо нормализовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2003, 05:47 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Планы планами, нужно смотреть как физически грузится машина, сколько памяти берет, как диски шуршат...? Поиграть параметрами в init.ora ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2003, 06:43 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
>Планы планами, >нужно смотреть как физически грузится машина, >сколько памяти берет, как диски шуршат...? нет уж, напильник предпочтительнее стетоскопа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2003, 13:31 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
диски видимо шуршат хорошо ;-) иначе вопрос не появился бы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2003, 14:43 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
>диски видимо шуршат хорошо ;-) иначе вопрос не появился бы дык меинфрейм ведь, а там диски ого-го :-)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2003, 14:46 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Угу... там наверное диски сами по себе шуршат нехило и без этого запроса... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2003, 20:51 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Мужики... я не могу с настройками Оракла играть. Если только пинать человека, который отвечает за базу... Индекса по id нету. В первой базе он уникальный, во второй базе есть не все аналогичные значения id. В том то и дело(про структуру) - что надо считать иногда эти все 400 с лишним тысяч, перебирать их... ибо по специфике работы выдаются листы печати общей суммой около 5000 страниц, по 40 записей на каждом, без шапки... и когда простой подсчет сильно тормозит машину... причем ооооооооооочень мощную - становиться прикольно, так как тот же самый запрос на п/к выполняется в разу быстрее - может что то в настройках Оракла? Что самое интересное, если выполнять аналогичную операцию на КОБОЛЕ (который работает на том же самом мейнфрейме), времени на это надо меньше, намного (не учитывая программирование на КОБОЛЕ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2003, 21:23 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
просили ж привести план запроса... И где он? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2003, 22:46 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Эх была, не была ! REM ============================================ REM = Процедура гадания на кофейной гуще. REM = "Колдуй бабка, колдуй дед, трое сбоку, наших нет." (с) Филатов REM ============================================ Если у вас используется оптимизатор по правилам, то индекс будет использоваться со 100% гарантией, как только вы добавляете условие "and in01c.kv = 'чемуто' . Теперь для извлечения каждой строки таблицы in01c, удовлетворяющей запросу Оракл будет совершать минимум три логических чтения (2 блока индекса, табличный блок), вместо одного при полном сканировании В sqlplus выполните команду show optimizer , чтобы сначала прояснить хотя бы этот вопрос. Все, карты больше ничего не кажут...пока ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2003, 02:02 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
сам запрос - select count(*) from v_inst01 where tzap=1 время выполнения 73 секунды, результат ~6 тысяч из 400 тысяч записей (написал для простоты вьюшку). про план запроса - Explain plan нужен? тока как его выдернуть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2003, 14:21 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32126153&tid=1991287]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
171ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 241ms |
| total: | 497ms |

| 0 / 0 |
