博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle查询优化
阅读量:4031 次
发布时间:2019-05-24

本文共 990 字,大约阅读时间需要 3 分钟。

一些简单的oracle查询优化

  • 使用where过滤行
    如果查询数据时禁止用程序过滤数据,尽量在sql中过滤数据。例如 查询性别为男的用户记录,一定要在where条件中过滤记录不能通过查询所有结果后在程序里面过滤
  • 使用表连接而不是多个查询
    在涉及到查询多个时,尽量使用表之间的连接进行查询,不要单独进行查询,然后再通过程序把结果集合起来。
  • 执行连接时使用完全限定的列引用
    在查询中包含表的别名,并为查询所引用的每列制定合适的别名,这样查询就不需要去查询表的列。
  • 使用CASE表达式而不是多个查询
    当要对一个表的相同自行许多计算时,使用CASE表达式而不是用多个查询
    Select 
    Cont(case when price <13 then 1 else null end )  low,
    Cont(case when price  between    13 and 15  then 1 else null end ) med,
    Cont(case when price >13 then 1 else null end ) high
    from table
  • 增加表索引
    1.要对指定的查询条件创建索引,但是在查询中用到 like '%name%' 是不走索引的尽量采用 like '%name' or like 'name%' 。
    2.创建函数索引
    如果查询条件为通过函数查询 例如 where name = Upper('AaBbCcDd')  ,这样要创建Upper(name)索引
    3.内容经常重复的字段不能建索引,例如性别之类的字段,里面的数据重复几率太大,不用创建索引。
  • 使用WHERE而不用HAVING
    Where用于过滤行,having用于过滤组,因为行被分组后,having才能过滤组,所以尽量用where过滤
  • 使用exists而不用IN
    因为Exists只检查行的存在,而in检查实际值。
  • 使用相同的SQL
    如果执行相同,oracle会使用缓存里面的数据,使用的SQL 必须绝对相同
    所有字符必须相同
    大小写要相同
    空格要相同

上面为一些简单的oracle SQL 注意地方。其实oracle优化还有很多,例如怎么去创建表空间,表空间怎么发布,怎么去创建索引,索引处理,怎么应用oracle的缓存,还有oracle独有的基于成本的优化等。这里面就大有学问了,希望大家一起交流。

转载地址:http://cdebi.baihongyu.com/

你可能感兴趣的文章
使用file查看可执行文件的平台性,x86 or arm ?
查看>>
qt5 everywhere 编译summary
查看>>
qt5 everywhere编译完成后,找不到qmake
查看>>
arm-linux开机读取硬件时钟,设置系统时钟。
查看>>
交叉编译在x86上调试好的qt程序
查看>>
/dev/input/event0 键盘输入
查看>>
qt 创建异形窗体
查看>>
可重入函数与不可重入函数
查看>>
简单Linux C线程池
查看>>
内存池
查看>>
输入设备节点自动生成
查看>>
opencv test code-1
查看>>
eclipse 导入先前存在的项目
查看>>
GNU hello代码分析
查看>>
Qt继电器控制板代码
查看>>
busybox passwd修改密码
查看>>
wpa_supplicant控制脚本
查看>>
rfkill: WLAN hard blocked
查看>>
gstreamer相关工具集合
查看>>
arm 自动升级脚本
查看>>