SQLPLUS araci ile excel çıktısı alabilmek için örnek;
set term off
set echo off
set underline off
set colsep “;”
set linesize 100
set pagesize 0
set sqlprompt ”
set lines 1000 pages 1000
set trimspool on
set feedback off
set heading on
set newpage 0
set headsep off
spool myFile.csv
select * from locations;
spool off;
exit;
/
Performans testleri sırasında, sonuçları etkileyen birçok parametre vardır. Hardware özellikleri, (varsa) network hızı, işletim sistemi vs. Bir bütün olarak bütün bu parametreler önem kazanıyor.
İşte, bunlardan biri de harddisk okuma/yazma(disk I/O) hızıdır. Sonuçları iyi yorumlayabilmek adına, normal şartlarda diskin I/O değerlerini bilmemiz önemlidir.
Depolama satıcıları, ürünleri üzerinde sonsuz miktarda performans verisi sunar, ancak bilgiler, bir Oracle veritabanı tarafından kullanıldığında, depolamanın nasıl performans göstereceğini yansıtmaz. Burada, işletim sistemi seviyesinde ve Oracle tarafından sağlanan bazı yardımcı programlar da dahil olmak üzere depolama sistemlerinizin performansını test etmek için birkaç yoldan bahsedeceğiz.
NOT : Oracle araçları (utilities), Oracle veritabanı tarafından gerçekleştirilen işlem türlerini taklit etmek için benzetilmiş bir yük kullanır. Uygulamalarınızın ürettikleri performans seviyesini başarabileceklerinin garantisi yoktur.
Disk performans testleri, buffer ve gerçek disk hızı olarak ayrılmaktadır. Buffer ön belleğin verdiği tepki süresidir. Gerçek disk hızı ise, diskinizin fiziksel olarak yazma / okuma işlemlerine verdiği tepki süresidir. İşleme başlangıç süresi, işlemi bitirme süresi ve işlemin disk boyutu olarak kriterler bulunmaktadır.
Biz bu yazımızda disk performansını ölçmek için aşağıdaki araçları sırayla kullanacağız.
Script 1 : Günlük çıkan archivelog ile ilgili istatistikler.
SELECT A.*, ROUND (A.Count# * B.AVG# / 1024 / 1024 / 1024) Daily_Avg_Gb
FROM ( SELECT TO_CHAR (First_Time, 'YYYY-MM-DD') DAY,
COUNT (1) Count#,
MIN (RECID) Min#,
MAX (RECID) Max#
FROM v$log_history
GROUP BY TO_CHAR (First_Time, 'YYYY-MM-DD')
ORDER BY 1) A,
(SELECT AVG (BYTES) AVG#,
COUNT (1) Count#,
MAX (BYTES) Max_Bytes,
MIN (BYTES) Min_Bytes
FROM v$log) B;
Script 2 : Saatlik olarak çıkan archivelog sayısı.
OSWatcher aracı belirli aralıklarla top, iostat,vmstat, netstat gibi komutlar ile üretilen verilerin analiz edilip saklanılıp raporlanması için geliştirilmiş bir araçtır.İçinde barındırdığı OSWg aracı ile analiz edilen verileri grafik olarak sunar.
OSWatcher aracı Oracle tarafından geliştirilmiştir ve metalink üzerinden (support.oracle.com) ücretsiz indirip kullanabilirsiniz. Metalink üzerinden (https://support.oracle.com) “OS Watcher Black Box User Guide [ID 301137.1]” isimli dokümanda bulunan oswbb733.tar isimli dosyayı indirelim.
1.Bu dosyayı WinSCP tarzı bir program ile Linux sunucumuza “oracle” kullanıcısı ile kopyalayalım.
NOT : OSWatcher ksh kabuğunda(shell) yazıldığı için sistemimizde ksh olması gerekmektedir. ksh olup olmadıgını anlamak için aşagıdaki komutdan yararlanabiliriz.
Bir transaction; birden çok SQL sorgularının çalıştırıldığı ama Oracle’ın, bu sorguların tamamını bir ünite(set) olarak algıladığı mantıksal sorgu bloğudur. Bu blok rollback ya da commit ile parçalanabilir veya sonlandırılabilir. Yani begin yada herhangi bir SQL cümlesi ile başladığımız ve COMMIT, ROLLBACK veya işlemleri sonlandıracak bir söz deyimi ile karşılaşmamız arasında yapılan tüm aksiyonlardır. Transaction işlemi başlar ve bitirilir. Transaction’nın başlaması için;
Veri tabanına bağlanıp ilk SQL cümlesinin çalışması
Her transaction bitiminden sonra sonra yeni bir SQL’in çalışması ile
Bir transaction’ın bitmesi için aşağıdaki işlemlerden birinin olması yeterlidir.
COMMIT veya ROLLBACK işlemlerinden birinin yapılması
DDL işlemlerinden birinin(CREATE ,DROP,ALTER ve RENAME) yapılıyor olması. Bunun nedeni ise hatırlayacağınız gibi DDL işlemleri AUTO COMMIT ‘dir. Yani sizin commit etmenize gerek yoktur direk commitler.
DCL işlemlerininden birinin yapılması GRANT,REVOKE gibi. Bunun nedeni de yine AUTO COMMIT olmasıdır.
Kullanıcının veri tabanından bağlantısının kesilmesi.
COMMIT : Çalışmasını dışardan vereceğimiz komut ile tetiklebilmek için 2 farklı komut çalıştırabiliriz. Bunlar COMMIT ve COMMIT WORK’tür. Commit transaction’ı sonlandırarak tüm yapılan değişikliklerin kalıcı olmasını sağlamaktadır. Bu sayede yapılan tüm değişiklikler tüm sessionlar tarafından görünür olabilecektir.Örneşin aşağıdaki işlem bir transactiondır ve işlemin sonunda herhangi bir problem olmadığında COMMIT işlemi ile transactionımız son bulur.