| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Oracle > Оптимизация работы сервера Oracle |
| Автор: RoMka 11.2.2005, 09:24 |
| Такой вопрос: У нас в офисе стоит сервак с Oracle - P4 3.06GHz, 1024 RAM, 4 HDD 80GB ... С ним работает одновременно около 20-ти пользователей. В общем работает нормально, но на некоторых запросах начинает жутко тормозить. кто-нибудь один запускает у себя такой отчёт и на серваке oracle.exe тянет всё на себя, и все ждут пока отработает эта сессия. Я понимаю что надо переделывать эти запросы, но они итак уже упрощены до предела. может надо само железо апгрейдить или дело не внём? |
| Автор: Marriage 28.2.2005, 18:53 |
| Диски сказёвые поставить. |
| Автор: LSD 28.2.2005, 22:45 |
| Начни с самого элементарного, во что упираются запросы. Производительность дисковой подсистемы или процессора. Отсюда и надо смотреть как можно оптимизировать, запросы, индексы, или аппаратуру менять. |
| Автор: RoMka 1.3.2005, 08:27 |
| Marriage, ну стоят у нас RAID массивы.. LSD, а запросы упираются кажись в проц.. Но я имел ввиду в настройках самой базы нет никаких особенных настроек? |
| Автор: AntonSaburov 1.3.2005, 18:22 |
| Может покопаться в ключах (которые оптимизируют запрос) - может там есть что-то дающее более низкий приоритет. Посмотреть, можно ли как-то запускать эти отчеты в более низком приоритете - хотя это уже просто догадки. Я с таким не сталкивался. Может можно как-то ограничить возможные ресурсы для коннекта. Т.е. юзеру не давать больше чем ... |
| Автор: LSD 1.3.2005, 22:59 | ||
А каких настройках идет речь? Если ты хочешь просто понизить приоритет для тех пользователей, которые запускают объемные отчеты. То это можно сделать с помощью RESOURCE_PLAN. Если интерестно могу подкинуть инфу. |
| Автор: RoMka 2.3.2005, 07:28 |
| LSD, конечно интересно! кидай вот сюда - romka@mail.ru |
| Автор: Guest 2.3.2005, 12:28 | ||
Нет уж - лучше сюда! |
| Автор: bursa 2.3.2005, 14:39 |
| Попробуй изменить в init.ora параметры db_block_size = 8192 db_block_buffers = 16384, где 8192*16384=128М (*1024*1024)-размер данных, загруженных в оперативную память. Чем больше в оперативной памяти - тем всё быстрее работает. Еще - измени на побольше tablespace temp и Rollback (500-1000M) Всё это помогает, но в случае, если твой Select не использует индексы, ничто особо не поможет. Если связь между таблицами по двум (и более полям), обязательно тащи их в Select, если нужно по одному полю - создавай индекс по одному полю. Если сортируешь по двум и более полям - создавай индекс по этим полям. Никогда не пользуй оператор not in (select и пр. и пр. |
| Автор: LSD 2.3.2005, 23:52 | ||
Угу и получить ORA-00058. Размер блока в Oracle не меняется после создания базы. Вот статейка описывающая как создать простейший resource plan. |
| Автор: RoMka 3.3.2005, 07:57 |
| LSD, спасибо, занятная статейка, надо попробовать.... |
| Автор: Dimich 3.3.2005, 18:30 |
| А Вы, RoMka, киньте сюда свой init.ora, посмотрим, может чего можно еще сделать кроме db_block_size? Кстати, табличные пространства с данными и индексами, temp и rollback сегменты, логи разнесены по разным (физическим) устройствам? |
| Автор: Guest 3.3.2005, 19:12 | ||
хм. buffers на 9.2 так вот просто менять не рекомендуется - лучше через EM и в spf. а то возникнет конфликт. |
| Автор: RoMka 4.3.2005, 08:11 | ||
Dimich, ну держите...
|