EN COK KAYNAK TÜKETEN SORGUYU BULMAK
-- en cok kaynak tüketen sorguyu bulmak için aşağıdaki sorguyu kullanabiliriz.
--bu sorgu disk kullanımını bize göstermektedir.
--önce denemeler yapmak için hazırlık yapalım.
--bir tablo yaratalım. bu tabloya insert işlemi yaparak diski ne kadar yoruğunu göreceğiz.
create table kaynak_tuketim_deneme as select * from all_objects
--şimdi tablomuza sürekli olarak kayıt ekleyelim.
DECLARE
BEGIN
FOR i IN 1.. 10 LOOP
INSERT INTO kaynak_tuketim_deneme
SELECT *
FROM all_objects;
COMMIT;
END LOOP;
END;
--çalışan sorgumuzu görmek için
SELECT /*+ ORDERED */ v.osuser,
v.schemaname,
Substr(Rpad(s.sql_text,64),1,64) sqltxt
FROM v$session v,
v$sqltext_with_newlines s
WHERE --v.osuser = 'aates'
s.address = v.sql_address
AND s.hash_value = v.sql_hash_value
ORDER BY piece
--ne kadar kaynak kullandığını hangi sorgunun ne kadar yet tükettiğini görmek için
SELECT *
FROM (SELECT Substr(a.sql_text,1,50) sql_text,
Trunc(a.disk_reads / Decode(a.executions,0,1,
a.executions)) reads_per_execution,
a.buffer_gets,
a.disk_reads,
a.executions,
a.sorts,
a.address
FROM v$sqlarea a
ORDER BY 2 DESC)
-- Burada ne kadar?n? listelemek istedi?imizi belirtiyoruz.
WHERE ROWNUM <= 10;
-- son olarak arkamızda pislik bırakmayalım.
drop table kaynak_tuketim_deneme
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment