ORACLE之sql語句優化

今天是四月份最後一天的上班時間,明天就開始假期了!~三天!希望自己能利用這幾天好好補一補專業知識,今天晚上開始學習SQL優化課程!

常規優化

1:儘量避免使用* 列出所有列,因爲系統對*解析成列明會消耗一定時間,從而使得SQL變慢

2:TRUNCATE代替DELETE;當數據確定不要的時候,用TRUNCATE代替DELETE會更快,他不會講數據放到撤銷表空間,當然,用TRUNCATE就無法使用rollback恢復。

TRUNCATE TABLE TABLE_NAME DROP STORAGE;

3:在確保完整性的情況下,多用COMMIT,及時釋放資源,可以釋放:回滾段數據、被程序語句獲得的鎖、redo log buffer中的空間、ORACLE爲管理上述資源的內部花費

4:儘量減少對錶的查詢次數

5:用EXISTS代替IN

在子查詢中,in 字句會執行一個內部排序和合並,導致效率低下


表連接優化

1:驅動表的選擇

驅動表:最先被訪問的表(全掃描方式訪問),通常緊隨from後的會全掃描

2:where字句連接的順序

表之間的連接寫在前面,過濾的最大的卸載末尾


合理使用索引


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章