日期:2014-05-16 浏览次数:20600 次
最近发现一个sql效率比较低,虽然条件选择范围比较窄(选择性很好),却全表扫描而无法使用索引,导致效率很低。
后来问开发人员,因为在框架中需要一个主键,自己就在视图中增加了一列,ROWNUM AS serialno(oracle数据库),其实一般来说视图的建立都是先选择基表的,一般基表的主键或者唯一键就直接当框架中的主键就可以了,不要偷懒增加单独一列。
还有一种情况是表本身没有建立主键,业务理论上是存在的,只是没有控制而已,这时也必须坚持,如果数据有问题就解决数据问题,没有数据问题最好也加上数据库限制。
我当面给他看去掉后的效率,果然飞快,虽然需要改动程序,但是面对效率问题必须坚持改!