Оптимизация работы сервера Oracle

 
0
 
Oracle
ava
RoMka | 11.02.2005, 09:24
Такой вопрос:

У нас в офисе стоит сервак с Oracle - P4 3.06GHz, 1024 RAM, 4 HDD 80GB ... С ним работает одновременно около 20-ти пользователей. В общем работает нормально, но на некоторых запросах начинает жутко тормозить. кто-нибудь один запускает у себя такой отчёт и на серваке oracle.exe тянет всё на себя, и все ждут пока отработает эта сессия. Я понимаю что надо переделывать эти запросы, но они итак уже упрощены до предела.
может надо само железо апгрейдить или дело не внём?

Comments (13)
ava
Marriage | 28.02.2005, 18:53 #
Диски сказёвые поставить.
ava
LSD | 28.02.2005, 22:45 #
Начни с самого элементарного, во что упираются запросы. Производительность дисковой подсистемы или процессора.
Отсюда и надо смотреть как можно оптимизировать, запросы, индексы, или аппаратуру менять.
ava
RoMka | 01.03.2005, 08:27 #
Marriage, ну стоят у нас RAID массивы..

LSD, а запросы упираются кажись в проц..

Но я имел ввиду в настройках самой базы нет никаких особенных настроек?
ava
AntonSaburov | 01.03.2005, 18:22 #
Может покопаться в ключах (которые оптимизируют запрос) - может там есть что-то дающее более низкий приоритет.
Посмотреть, можно ли как-то запускать эти отчеты в более низком приоритете - хотя это уже просто догадки. Я с таким не сталкивался.
Может можно как-то ограничить возможные ресурсы для коннекта. Т.е. юзеру не давать больше чем ...
ava
LSD | 01.03.2005, 22:59 #
Цитата (RoMka @ 1.3.2005, 08:27)
Но я имел ввиду в настройках самой базы нет никаких особенных настроек?

А каких настройках идет речь? Если ты хочешь просто понизить приоритет для тех пользователей, которые запускают объемные отчеты. То это можно сделать с помощью RESOURCE_PLAN. Если интерестно могу подкинуть инфу.
ava
RoMka | 02.03.2005, 07:28 #
LSD, конечно интересно! кидай вот сюда - [email protected] smile
ava
guest | 02.03.2005, 12:28 #
Цитата (RoMka @ 2.3.2005, 07:28)
LSD, конечно интересно! кидай вот сюда - [email protected] smile

Нет уж - лучше сюда!
ava
bursa | 02.03.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 и пр. и пр.




ava
LSD | 02.03.2005, 23:52 #
Цитата (bursa @ 2.3.2005, 14:39)
Попробуй изменить в init.ora параметры

db_block_size = 8192

Угу и получить ORA-00058. Размер блока в Oracle не меняется после создания базы.

Вот статейка описывающая как создать простейший resource plan.
ava
RoMka | 03.03.2005, 07:57 #
LSD, спасибо, занятная статейка, надо попробовать....
ava
Dimich | 03.03.2005, 18:30 #
А Вы, RoMka, киньте сюда свой init.ora, посмотрим, может чего можно еще сделать кроме db_block_size?

Кстати, табличные пространства с данными и индексами, temp и rollback сегменты, логи разнесены по разным (физическим) устройствам?
ava
guest | 03.03.2005, 19:12 #
Цитата (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 и пр. и пр.

хм. buffers на 9.2 так вот просто менять не рекомендуется - лучше через EM и в spf.
а то возникнет конфликт.
ava
RoMka | 04.03.2005, 08:11 #
Dimich, ну держите...


#
# Copyright (c) 1991, 2000 by Oracle Corporation
#
##############################################################################
# Example INIT.ORA file
#
# This file is provided by Oracle Corporation to help you customize
# your RDBMS installation for your site. Important system parameters
# are discussed, and example settings given.
#
# Some parameter settings are generic to any size installation.
# For parameters that require different values in different size
# installations, three scenarios have been provided: SMALL, MEDIUM
# and LARGE. Any parameter that needs to be tuned according to
# installation size will have three settings, each one commented
# according to installation size.
#
# Use the following table to approximate the SGA size needed for the
# three scenarious provided in this file:
#
# -------Installation/Database Size------
# SMALL MEDIUM LARGE
# Block 2K 4500K 6800K 17000K
# Size 4K 5500K 8800K 21000K
#
# To set up a database that multiple instances will be using, place
# all instance-specific parameters in one file, and then have all
# of these files point to a master file using the IFILE command.
# This way, when you change a public
# parameter, it will automatically change on all instances. This is
# necessary, since all instances must run with the same value for many
# parameters. For example, if you choose to use private rollback segments,
# these must be specified in different files, but since all gc_*
# parameters must be the same on all instances, they should be in one file.
#
# INSTRUCTIONS: Edit this file and the other INIT files it calls for
# your site, either by using the values provided here or by providing
# your own. Then place an IFILE= line into each instance-specific
# INIT file that points at this file.
#
# NOTE: Parameter values suggested in this file are based on conservative
# estimates for computer memory availability. You should adjust values upward
# for modern machines.
#
###############################################################################

db_name = "ekort"

instance_name = ekort

service_names = ekort

db_files = 1024

control_files = ("D:\oracle\oradata\ekort\control01.ctl", "E:\oracle\oradata\ekort\control02.ctl", "F:\oracle\oradata\ekort\control03.ctl")

open_cursors = 300
max_enabled_roles = 148
db_file_multiblock_read_count = 8

db_block_buffers = 55663

shared_pool_size = 151999078

large_pool_size = 614400
java_pool_size = 0

log_checkpoint_interval = 10000
log_checkpoint_timeout = 1800

processes = 150

parallel_max_servers = 5

log_buffer = 32768

#audit_trail = true # if you want auditing
timed_statistics = true # if you want timed statistics
max_dump_file_size = 10240 # limit trace file size to 5M each


##### For archiving if archiving is enabled #####
log_archive_start = true
log_archive_dest_1 = "location=D:\oracle\oradata\ekort\archive"
log_archive_format = %%ORACLE_SID%%T%TS%S.ARC
# If using private rollback segments, place lines of the following
# form in each of your instance-specific init.ora files:
#rollback_segments = ( RBS0, RBS1, RBS2, RBS3, RBS4, RBS5, RBS6 )

# Global Naming -- enforce that a dblink has same name as the db it connects to
global_names = true

# Uncomment the following line if you wish to enable the Oracle Trace product
# to trace server activity. This enables scheduling of server collections
# from the Oracle Enterprise Manager Console.
# Also, if the oracle_trace_collection_name parameter is non-null,
# every session will write to the named collection, as well as enabling you
# to schedule future collections from the console.
# oracle_trace_enable = true

oracle_trace_collection_name = ""
# define directories to store trace and alert files
background_dump_dest = D:\oracle\admin\ekort\bdump
#Uncomment this parameter to enable resource management for your database.
#The SYSTEM_PLAN is provided by default with the database.
#Change the plan name if you have created your own resource plan.# resource_manager_plan = system_plan
user_dump_dest = D:\oracle\admin\ekort\udump

db_block_size = 8192

remote_login_passwordfile = exclusive

os_authent_prefix = ""

distributed_transactions = 10
compatible = 8.1.0
sort_area_size = 65536
sort_area_retained_size = 65536

Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit