1. 程式人生 > >ORACLE優化相關

ORACLE優化相關

資料庫優化最關鍵的因素在於IO,因為操作記憶體是是很快的,但是讀寫磁碟檔案的速度是很慢的,優化SQL最關鍵的在減少IO的讀取,這就從邏輯優化和物理優化兩方面

物理優化: 1. oracle 的執行環境 2. 合理配置Oracle 例項的引數 3. 建立合適的索引 4.將索引資料和表資料分開在不同的表空間上 5. 建立表分割槽,將資料分開存在不同的分割槽上

索引:  建立索引就跟字典的目錄一樣,有了目錄,查詢某個字的速度就快一些,不用全部遍歷所有的字。資料庫在執行一條SQL的時候,預設方式是根據搜尋條件進行全表掃描,如果我們隊某一列新增索引,查詢時就會先去索引列表中一次定位到特定值的行數,大大減少遍歷匹配的行數。

什麼時候該增加索引? 1. 如果每次都需要取到表裡所有記錄,增加索引沒意義,對於非唯一性欄位,例如性別男女,對於記錄比較少的資料量,增加索引不僅不會增加查詢速度反而浪費了儲存空間,因為索引是需要儲存空間的,任何update/delete/insert的執行,索引就會計算更新。

2. select distinct dept_charger, first_value(dept_name) over (partition by dept_charger order by dept_name asc) dept_name from dpt where dept_id is not null and start with dept_id in ('_01') connect by prior dept_id = parent_id

以上 程式碼的意思是 按照部門id 由第一層級逐層遞增,展示所有資料,然後 按照部門負責人分組後按照部門名稱降序展示,取第一個分組的部門名稱展示,最後再去重

3. 邏輯上的優化

1. 可以對錶進行邏輯分割,如中國移動使用者表,可以根據手機尾號建10個表,這樣對效能有一定的作用

2. SQL語句使用佔位符