Oracle

状态:不断编辑完善中

隐式转换的缺点:

  1. 使用显示类型转换会让我们的SQL更加容易被理解,也就是可读性更强,但是隐式类型转换却没有这个优点。
  2. 隐式类型转换往往对性能产生不好的影响,特别是左值的类型被隐式转为了右值的类型。这种方式很可能使我们本来可以使用索引的而没有用上索引,也有可能会导致结果出错。
  3. 隐式类型转换可能依赖于发生转换时的上下文环境,比如to_date(sysdate, fmt),一旦上下文环境改变,很可能我们的程序就不能运行。
  4. 隐式类型转换的算法或规则,以后Oracle可能改变,这是很危险的,意味着旧的代码很可能在新的Oracle版本中运行出现问题(性能、错误等),显示类型转换总是有最高的优先级,所以显示类型转换没有这种版本更替可能带来的问题。
  5. 隐式类型转换是要消耗时间的,当然同等的显式类型转换时间也差不多,最好的方法就是避免类似的转换,在显示类型转换上我们会看到,最好不要将左值进行类型转换,到时候有索引也用不上索引,还要建函数索引,索引储存和管理开销增大。

 总结:

  • Oracle 使用数据类型的优先级来决定隐式类型转换,原则是将优先级低的转换为优先级高的。
  • 隐式转换发生在字段列上时将使索引失效。