狀態:不斷編輯完善中
隱式轉換的缺點:
- 使用顯示類型轉換會讓我們的SQL更加容易被理解,也就是可讀性更強,但是隱式類型轉換卻沒有這個優點。
- 隱式類型轉換往往對性能產生不好的影響,特別是左值的類型被隱式轉為了右值的類型。這種方式很可能使我們本來可以使用索引的而沒有用上索引,也有可能會導致結果出錯。
- 隱式類型轉換可能依賴於發生轉換時的上下文環境,比如to_date(sysdate, fmt),一旦上下文環境改變,很可能我們的程序就不能運行。
- 隱式類型轉換的算法或規則,以后Oracle可能改變,這是很危險的,意味着舊的代碼很可能在新的Oracle版本中運行出現問題(性能、錯誤等),顯示類型轉換總是有最高的優先級,所以顯示類型轉換沒有這種版本更替可能帶來的問題。
- 隱式類型轉換是要消耗時間的,當然同等的顯式類型轉換時間也差不多,最好的方法就是避免類似的轉換,在顯示類型轉換上我們會看到,最好不要將左值進行類型轉換,到時候有索引也用不上索引,還要建函數索引,索引儲存和管理開銷增大。
總結:
- Oracle 使用數據類型的優先級來決定隱式類型轉換,原則是將優先級低的轉換為優先級高的。
- 隱式轉換發生在字段列上時將使索引失效。