借鑒https://www.cnblogs.com/ssrstm/p/5753068.html和https://www.cnblogs.com/exe19/p/5786806.html
1. 對查詢進行優化,應盡量避免全表掃描,首先應考慮在 where 及 order by 涉及的列上建立索引。
2. 應盡量避免在 where 子句中對字段進行 null 值判斷,應盡量避免在 where 子句中使用!=或<>操作符,應盡量避免在 where 子句中使用 or 來連接條件因為以上的查詢會導致導致引擎放棄使用索引而進行全表掃描。
3. in 和 not in 也要慎用,否則會導致全表掃描。
4. SELECT子句中避免使用‘*’:
5. 盡量多使用COMMIT:只要有可能,在程序中盡量多使用COMMIT, 這樣程序的性能得到提高,需求也會因為COMMIT所釋放的資源而減少,COMMIT所釋放的資源:
a. 回滾段上用於恢復數據的信息。
b. 被程序語句獲得的鎖。
c. redo log buffer 中的空間。
d. Oracle為管理上述3種資源中的內部花費。
6. 通過內部函數提高SQL效率
7. 避免在where 字句中使用參數,對字段進行表達式操作,對字段進行函數操作,“=”左邊進行函數、算術運算或其他表達式運算,因為會導致引擎放棄使用索引而進行全表掃描。
8. 盡量避免使用游標
9. 刪除重復記錄