1. 程式人生 > >效能測試常用Oracle語句,這10個果斷收藏了!

效能測試常用Oracle語句,這10個果斷收藏了!

資料庫的效能優化是個非常複雜的事情,熟悉Oracle的專家能手更是數不勝數,所以雖說我已經入行軟體測試5年之久,但也沒敢寫過Oracle。

直到最近,我認識了一位資深Oracle大師,我竟然發現大師有幾個地方說錯了,主要是在理論聯絡實際的問題分析、AWR報告解讀方面,提問之後竟然把大師掛在了臺上。後來想想,大師也有不懂的,我怕什麼呢,寫!下面我就和大家分享下,從效能測試的角度看Oracle。

oracle的效能測試主要是模擬大量的sql語句操作,來對資料庫伺服器進行加壓。在測試前,需要準備以下要模擬的sql語句,測試指令碼,並將測試控制機、測試加壓機、被測資料庫伺服器準備妥當。

Oracle資料庫效能優缺點


優點
1、能在所有主流平臺上執行(包括 windows)。完全支援所有的工業標準。採用完全開放策略。可以使客戶選擇最適合的解決方案。對開發商全力支援。
2、平行伺服器通過使一組結點共享同一簇中的工作來擴充套件windownt的能力,提供高可用性和高伸縮性的簇的解決方案。 
3、如果windowsNT不能滿足需要, 使用者可以把資料庫移到UNIX中。
4、安全性方面,效能最高。
5、客戶端支援及應用模式 ,多層次網路計算,支援多種工業標準,可以用ODBC,JDBC,OCI等網路客戶連線式要求,可根據實際系統需求構造資料庫。
6、採用標準的SQL結構化查詢語言。
7、具有豐富的開發工具,覆蓋開發週期的各階段。
8、支援大型資料庫,資料型別支援數字、字元、大至2GB的二進位制資料,為資料庫的面向物件儲存提供資料支援。
9、具有第四代語言的開發工具(SQL*FORMS、SQL*REPORTS、SQL*MENU等)。
10、具有字元介面和圖形介面,易於開發。
11、通過SQL*DBA控制使用者許可權,提供資料保護功能,監控資料庫的執行狀態,調整資料緩衝區的大小。
12、分佈優化查詢功能。
13、具有資料透明、網路透明,支援異種網路、異構資料庫系統。並行處理採用動態資料分片技術。
14、支援客戶機/伺服器體系結構及混合的體系結構(集中式、分散式、客戶機/伺服器)。
15、實現了兩階段提交、多線索查詢手段。
16、資料安全保護措施:沒有讀鎖,採取快照SNAP方式完全消除了分佈讀寫衝突。自動檢測死鎖和衝突並解決。
17、資料安全級別為C2級(最高階)。

18、資料庫內模支援多位元組碼制,支援多種語言文字編碼。
19、具有面向製造系統的管理資訊系統和財務系統應用系統。
20、WORKGROUP/2000具有ORACLE7WORKGROUP伺服器,POWER OBJECTS(圖形開發環境,支援OS/2、UNIX、WINDOWS/NT平臺。
21、在中國的銷售份額佔50%以上。 
缺點
1、管理維護麻煩一些;
2、資料庫崩潰後回覆很麻煩,因為他把很多東西放在記憶體裡;
3、資料庫連線要慢些,最好用連線池;
4、大物件不好用,vchar2欄位太短,不夠用;
5、管理員的工作煩,且經驗非常重要;
6、對硬體的要求很高;

效能測試常用Oracle語句

顯示資料庫當前的連線數:

selectcount(*) from v$process;

顯示資料庫最大連線數:

selectvalue from v$parameter where name ='processes' 

修改最大Oracle最大連線數:

alter systemset processes = 300 scope = spfile;

顯示當前的session連線數:

selectcount(*) fromv$session

檢視當前有哪些使用者正在使用資料:

SELECT osuser,a.username,cpu_time/executions/1000000||'s', sql_fulltext,machine fromv$session a, v$sqlarea b where a.sql_address =b.address order by cpu_time/executionsdesc;

檢視資料庫中SGA:

System globalarea (SGA),system global area(PGA);

檢視連線oracle的所有機器的連線數:

selectmachine,count(*) fromv$session groupbymachine;

檢視連線oracle的所有機器的連線數和狀態:

selectmachine,status,count(*) fromv$session groupbymachine,status orderbystatus;

Oracle 11g設定記憶體自動管理:

​ 

檢視消耗磁碟讀取最多的SQL Top 5:

selectdisk_reads,sql_text,SQL_FULLTEXT

from (selectsql_text,disk_reads,SQL_FULLTEXT,

  dense_rank() over

    (order by disk_reads desc) disk_reads_rank

  from v$sql)

wheredisk_reads_rank <=5;

歡迎加入  51軟體測試大家庭,在這裡你將獲得【最新行業資訊】,【免費測試工具安裝包】,【軟體測試技術乾貨】,【面試求職技巧】... 51與你共同學習,一起成長!期待你的加入: QQ                     群:                    755431660