database
wy412175111
这个作者很懒,什么都没留下…
展开
-
Oracle高效SQL语句原则
良好的SQL语句风格易于发现问题、易于阅读,移植性好。80%的性能问题是由不良SQL语句引发的。1.尽可能对查询条件的列建立索引; 2.尽量不要在where条件中对查询列使用函数,除非建立了相应的函数索引,如可用带前导字符的like代替substr; 3.任何在where子句中使用is null或is not null的语句优化器是不允许使用索引的; 4.对于有联接的列,即使最后的联接值为一个静态...原创 2010-07-29 11:48:58 · 70 阅读 · 0 评论 -
Oracle的优化器
一、目的: 1、说一说Oracle的Optimizer及其相关的一些知识。 2、回答一下为什么有时一个表的某个字段明明有索引,当观察一些SQL的执行计划时,发现确不走索引的问题。 3、如果你对 FIRST_ROWS、 ALL_ROWS这两种模式有疑惑时也可以看一下这篇文章。 Oracle在执行一个SQL之前,首先要分析一下语句的执行计划,然后再按执行计划去执行。分析语句的执行计划的工作是由...原创 2010-07-29 11:49:44 · 63 阅读 · 0 评论 -
EXISTS、IN、NOT EXISTS、NOT IN的区别
EXISTS、IN、NOT EXISTS、NOT IN的区别: in适合内外表都很大的情况,exists适合外表结果集很小的情况。 exists 和 in 使用一例 =========================================================== 今天市场报告有个sql及慢,运行需要20多分钟,如下: update p_container_decl cd se...原创 2010-07-29 11:50:35 · 80 阅读 · 0 评论 -
oracle sql 按日,周,月,年统计
如: 表:consume_record 字段:consume (money类型) date (datetime类型) 请问怎么写四条sql语句分别按日,按周,按月,按季统计消费总量. 如:1月 1200元 2月 3400元 3月 2800元 --按日 select sum(consume),day([date]) from consume_record where year([date]) = '...原创 2010-07-29 11:51:57 · 161 阅读 · 0 评论 -
Oracle 行转列 万能视图
之前发过一个帖子,叫行转列的通用过程,http://topic.csdn.net/u/20091019/11/67cd55a3-3f42-4db7-a3f8-91dd52a913cd.html能满足最基本的需求。但也有一些缺陷,现在对其进行完善 代码 1.使用视图SQL codecreate or replace procedure row_to_col(tabname in varc...原创 2010-08-23 10:27:18 · 306 阅读 · 0 评论 -
在oracle中通过connect by prior来实现递归查询
connect by 是结构化查询中用到的,其基本语法是: select ... from tablename start by cond1 connect by cond2 where cond3; 简单说来是将一个树状结构存储在一张表里,比如一个表中存在两个字段: id,parentid那么通过表示每一条记录的parent是谁,就可以形成一个树状结构。 用上述语法的查询...原创 2010-08-25 16:22:15 · 76 阅读 · 0 评论 -
层次化查询(start with ... connect by prior)
这里将介绍层次化查询 start with ... connect by prior 语法: SELECT [LEVEL], column,expression,... FROM table WHERE [WHERE where_cause] [[START WITH start_condition] [CONNECT BY PRIOR prior_conditon]]...原创 2010-09-02 17:33:23 · 160 阅读 · 0 评论