rodriges.spb.ru echo $ORACLE_HOME

16Sep/10Off

Попробую оживить журнал

Скачал программу Semagic для удобного написания постов в блогС возвращением.По-центру

Filed under: Uncategorized Comments Off
27Feb/10

Linux core parameters

Коротко о параметрах ядра, важных для базы данных Oracle
SHMMAX
[root@rac2 ~]# cat /proc/sys/kernel/shmmax
4294967295
Определяет максимальный размер одного общего сегмента. В примере выше 4G. Важно следить чтобы размер SGA не превышал значения shmmax
SHMMNI
[root@rac2 ~]# cat /proc/sys/kernel/shmmni
4096
Определяет максимальное количество общих сегментов. Значение по-умолчанию вполне годится.
SHMALL
[root@rac2 ~]# cat /proc/sys/kernel/shmall
268435456
Максимальное количество памяти (в блоках, в линуксе блок = 4096 байт) доступное [...]

Filed under: Uncategorized No Comments
23Feb/10

На старт. Внимание.

Марш!

Filed under: Uncategorized No Comments
19Jan/10

Instance tuning

Перечислю основные вьюхи мониторинга.
I. SGA
select * from V$SGA_TARGET_ADVICE
order by sga_size_factor

 
Если увеличить SGA_TARGET и SGA_MAX_TARGET до 3760Mb, DB_TIME уменьшится на 35%, а также станет заметно меньше физических чтений с диска.
Коротко получаем информацию о текущем состоянии SGA
select * from v$sgainfo
 
Перед нам состоянии всех объектов SGA. Далее можно углубиться в детали, обратившиь к v$sgastat.
Если используем динамически [...]

Filed under: Uncategorized No Comments
31Dec/09

С Новым Годом

Поздравляю читателей с самым чистым и искренним праздником! Желаю исполнения желаний.

Filed under: Uncategorized No Comments
31Dec/09

Rman change

Я создал бэкап базы данных и перебросил ее на другой хост, с тем, чтобы организовать физический стэндбай. Однако за ночь на базе прошел еще один плановый бэкап, и наутро стэндбай пытался восстановиться с новой копии, которой не было не сервере.
 RMAN> change backup of database completed after ’sysdate-1′

Filed under: Uncategorized No Comments
30Dec/09

Open for

Курсорный тип и связка параметров.
declare
type t_type is ref cursor;
t t_type;
tt dict_add%rowtype;
begin
open t for
’select * from dict_add where name=:p1′
using ‘uno’;
loop
fetch t into tt;
exit when t%NOTFOUND;
dbms_output.put_line(tt.name);
end loop;

close t;
end;
Или же варианта c BULK COLLECT
declare
type t_type is ref cursor;
t t_type;
tt dict_add%rowtype;

type ttt_type is [...]

Filed under: Uncategorized No Comments
29Dec/09

Execute immediate bulk collect

При выполнении execute immediate можно собрать данные через bulk collect. Также продемонстрировано, каким образом можно передать переменный параметр.
declare
type t_type is table of dict_add%rowtype;
t t_type;
str varchar2(40) := ’select * from dict_add where name = :p1′;
begin
execute immediate str
bulk collect into t
using ‘uno’;
for i in t.first .. t.last
loop
dbms_output.put_line(t(i).name);
end [...]

Filed under: Uncategorized No Comments
28Dec/09

Current of cur_name for update

Можно использовать выражение current of name_of_cursor. Но в таком случае нужно объявлять курсор for update
declare
cursor c_cur is
select * from dict_add
for update;
c_rec dict_add%rowtype;
begin
open c_cur;
loop
fetch c_cur into c_rec;
exit when c_cur%NOTFOUND;
update dict_add
set name= name || name
where current of c_cur;
end loop;
close c_cur;
end;

Filed under: Uncategorized No Comments
28Dec/09

Open cursor

Из курсора также можно извлечь записи за одно обращение.
declare
type t_type is table of dict_add%rowtype;
t t_type;

cursor c_cur is
select * from dict_add;
– c c_cur;
begin
open c_cur;
fetch c_cur
bulk collect into t;
close c_cur;

for i in t.first..t.last
loop
dbms_output.put_line(t(i).name);
end loop;
end;

Filed under: Uncategorized No Comments