自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Oracle 10g sql優(yōu)化之索引篇

數(shù)據(jù)庫(kù) Oracle
網(wǎng)站速度不理想時(shí),可以考慮對(duì)數(shù)據(jù)庫(kù)進(jìn)行索引優(yōu)化。本文介紹Oracle 10g sql優(yōu)化中的索引優(yōu)化技巧,效果經(jīng)試驗(yàn)是相當(dāng)不錯(cuò)的。

網(wǎng)站速度變慢時(shí),你會(huì)考慮到什么解決方法?筆者最近公司網(wǎng)站的速度一起很不理想,文章頁(yè)面基本都要 10s 以上才能打開。數(shù)據(jù)庫(kù)用的是 Oracle 10g Express Edtion,存放文章的表超過(guò)了 10 萬(wàn)數(shù)據(jù)量,類似執(zhí)行一個(gè) select count(1) from res where class_id=1 這樣的語(yǔ)句就經(jīng)常在 10s 以上。然而,今天我在 class_id 上加了一個(gè)索引,這條語(yǔ)句的執(zhí)行時(shí)間就幾乎變成了 0s。效果之顯著,完全出乎我的預(yù)料。下面是Oracle 10g sql優(yōu)化相關(guān)的總結(jié):

1. 監(jiān)控 select 語(yǔ)句

(“數(shù)據(jù)庫(kù)主頁(yè)”從開始菜單里“Oracle Database 10g Express Edition”的“轉(zhuǎn)至數(shù)據(jù)庫(kù)主頁(yè)”進(jìn)入)

進(jìn)入“數(shù)據(jù)庫(kù)主頁(yè)>管理>數(shù)據(jù)庫(kù)監(jiān)視器>會(huì)話>SQL”頁(yè)面,在“搜索”里輸入“select”,點(diǎn)擊“開始”。 這樣就可以看到最近執(zhí)行的 select 語(yǔ)句。點(diǎn)擊“SQL”列里的 SQL 語(yǔ)句鏈接,查看執(zhí)行情況。其中,“CPU時(shí)間”即為執(zhí)行所用的時(shí)間,“已處理的行數(shù)”為查詢結(jié)果的行數(shù)。下面的“SQL文本”是 SQL 語(yǔ)句的完整內(nèi)容,“索引”區(qū)域顯示該查詢使用了哪個(gè)索引。

找到“CUP時(shí)間”超過(guò) 1 秒的查詢,看是否需要添加索引。

2. 添加索引

進(jìn)入“數(shù)據(jù)庫(kù)主頁(yè)>對(duì)象瀏覽器”頁(yè)面,在右邊偏上方有一個(gè)“創(chuàng)建”按鈕。點(diǎn)擊“創(chuàng)建” 按鈕,在出現(xiàn)的菜單里選擇“索引”,然后輸入“表名”,“索引類型”使用“常規(guī)”,再點(diǎn)擊“下一步”。

在新出現(xiàn)的頁(yè)面,輸入索引的名稱和索引列。如果是不唯一的字段,***將“單性值”設(shè)置為唯一,可能有助提高檢索速度。再點(diǎn)擊“下一步”,點(diǎn)擊“完成”按鈕。

照我的理解,創(chuàng)建索引時(shí)選擇什么索引列,應(yīng)該是由 select 語(yǔ)句的 where 部分決定的。比如 where id=1 ,只需選擇 id 一個(gè)索引列;如果是 where id=1 and name=2 ,則需要選擇 id 和 name 兩個(gè)索引列來(lái)創(chuàng)建索引。只對(duì)主鍵進(jìn)行索引,因?yàn)槭俏ㄒ坏?,所以將“單性值”設(shè)置為“唯一”。

數(shù)據(jù)量比較大的表,都應(yīng)在其主鍵上創(chuàng)建一個(gè)索引,其它需要的另加。

order by 語(yǔ)句里的字段,一般無(wú)法使用索引,所以,盡量在 order by 之前將查詢結(jié)果的行數(shù)縮到最少。

要提高 order by 語(yǔ)句的執(zhí)行效率,可適當(dāng)增加 sort_area_size 的值( 10240000=10m ):

  1. alter system set sort_area_size=10240000 scope=spfile; 

這樣就實(shí)現(xiàn)了Oracle 10g sql優(yōu)化的索引優(yōu)化。

附一:為表添加主鍵

進(jìn)入“數(shù)據(jù)庫(kù)主頁(yè)>對(duì)象瀏覽器”頁(yè)面,在左則選擇要?jiǎng)?chuàng)建主鍵的表。在右邊出現(xiàn)的表頁(yè)面中,點(diǎn)擊“約束條件”->“創(chuàng)建”,“約束條件類型”設(shè)置為“主鍵”,其它自行填寫。

附二:Oracle 配置參數(shù)查詢語(yǔ)句

  1. SELECT NAME,VALUE  
  2. FROM v$parameter  
  3. WHERE NAME IN 
  4. (’sga_max_size’,'db_cache_size’,  
  5. ’shared_pool_size’,’shared_pool_reserved_size’,'large_pool_size’,'java_pool_size’,  
  6. ‘db_block_size’,'db_block_buffers’,'log_buffer’,’sort_area_size’,’sort_area_retained_size’,  
  7. ‘hash_area_size’,’sessions’,'open_cursors’  
  8. )ORDER BY NAME

附三:其它參數(shù)設(shè)置命令

  1. alter system set sga_max_size=700m scope=spfile;  
  2.  
  3. alter system set sga_target=700m scope=spfile;  

【編輯推薦】

  1. 淺談Oracle優(yōu)化排序的操作
  2. Oracle使用hash分區(qū)優(yōu)化分析函數(shù)查詢
  3. 善用Oracle表空間設(shè)計(jì)提升數(shù)據(jù)庫(kù)性能
  4. 優(yōu)化數(shù)據(jù)庫(kù)大幅度提高Oracle的性能
  5. Oracle設(shè)置系統(tǒng)參數(shù)進(jìn)行性能優(yōu)化

 

責(zé)任編輯:yangsai 來(lái)源: 網(wǎng)絡(luò)轉(zhuǎn)載
相關(guān)推薦

2011-04-15 09:53:37

Oracle 10gSQL優(yōu)化

2010-04-14 16:09:51

Oracle 10g歸

2011-08-17 14:41:12

Oracle 10g透SQL Server

2011-08-17 15:13:47

Oracle 10g透SQL Server

2011-05-13 11:21:51

linuxoracle 10g安裝

2011-03-25 16:10:58

oraclenagios

2011-03-29 09:56:48

Oracle數(shù)據(jù)庫(kù)10SQL

2011-03-29 10:09:41

Oracle 10g虛擬數(shù)據(jù)庫(kù)

2011-08-23 14:23:25

Oracle 10g內(nèi)系統(tǒng)全局區(qū)

2009-11-19 10:32:41

Oracle 10g服

2010-03-30 19:31:25

Oracle 10g

2010-04-13 10:07:19

Oracle 10G

2011-08-30 14:40:46

SQL Server Oracle 10gC#源碼程序

2010-09-08 08:44:30

SQL Server

2010-04-14 10:03:52

SQL Server

2010-04-19 17:37:51

Oracle 10g

2010-04-09 15:59:24

Oracle 10g

2009-04-27 13:26:41

Oracle 10gRAC鏈接錯(cuò)誤

2009-09-07 09:03:47

VMWare安裝Ora

2010-05-07 09:35:25

Oracle 10g
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)