Oracle 查询技巧

原文链接:http://www.cnblogs.com/hjzhang/archive/2011/05/16/2047890.html

Oracle 查询表结构的语句: 

SELECT *  

FROM ALL_TAB_COLUMNS  

where owner='optimize' and table_name ='para_chan_g_zte';  2、desc 表名 3、 

SELECT column_name AS FIELDNAME FROM user_tab_columns where table_name = UPPER('para_chan_g_zte')  

  1. 重建索引:alter index PK_PARA_CELL_G_SIEM rebuild
  1. 查看索引状态:select   distinct   status   from   user_indexes  
    select   distinct   status   from   user_constraints
  1. 外关联查询:select pq as pianqu,ne_sys_id,related_bsc,sitecode,china_name from ne_bts_g_beehive t1 left join (select xtbm ,xtxx as zy from xtbm where thetype='ZY') t2 on t1.vendor=t2.xtbm ) left join (select xtbm,xtxx as pq from xtbm where thetype='PIANQU') on xtbm=pianqu
  1. 多表查询时的条件顺序设置技巧,Oracle在默认下对查询语句的解析基本是从右到左的顺序,所以在设置条件时,应该尽量将能过滤掉更多记录的条件放到右 边,比如查询所有朝阳的小区中配置载波数等于1的900小区,这里总共有3个条件,第一小区的行政区域是朝阳,第二配置载波为1,第三小区为900小区, 根据事实情况小区表中负荷条件1的假定为1000条,条件2的假定为3000条,条件3的假定为8000条,那查询的条件就应该是where cell_fires=1 and carres_conf=1 and adm_area='朝阳' ,另外在关联查询时以下两种写法后者更有效率:from ne_cell_g t2,ne_msc_g t3,ne_bsc_g t4,ne_bts_g t5 where t3.ne_nms_id=t4.related_msc and t4.ne_nms_id=t5.related_bsc and t5.ne_sys_id=t2.related_bts) tcell 与 from ne_cell_g t2,ne_msc_g t3,ne_bsc_g t4,ne_bts_g t5 where t3.ne_nms_id=t2.related_msc and t4.ne_nms_id=t2.related_bsc and t5.ne_sys_id=t2.related_bts) tcell
  1. =any 效率高于 in,<>比较时将扫描全表,尽量用>,<等代替。当条件中有计算表达式时,将不会用索引。

转载于:https://www.cnblogs.com/hjzhang/archive/2011/05/16/2047890.html

上一篇:KMP算法


下一篇:统计方案