您正在查看 "数据库" 分类下的文章
2009-04-18 10:58
先不论索引是否被滥用,今天只谈虽然建立了索引,但不同的SQL语句写法,用不上的问题
看看下面这颗树,就知道索引用不了的原因了
a
ab ad
abc adm
abcd admn
|
2009-04-16 07:05
没有fast=true的设置有人说or 比 in 好,exists 比in 好,索引比全表扫描好,分区能提高查询效率,但是分区要降低插入效率
我要说的是,没有fast=true的选项, 如果能找到一步,或者几步公式化的方法能提高效率,那么优化器自己就会做了,根本不用用户担心。
假设 or比in好,数据库优化器把in语法和or语法走的执行计划一样就可以了,何必折磨用户呢。
说点实际的,很多人张嘴就说,SQL优化就是避免全表扫描,不知道大家有没有了解过索引查找的原理.索引查找数据,有两步要做,第一步是索引中快速查询,索引 |
2008-09-01 17:41
查询表emp中所有数据
select emp_id,rownum from emp
第一步,查询结果,rownum待定
emp_id rownum
1 ? 1
2 ? 2
3 ? 3
4 ?
第二步,现在假设用rownum < 3的条件来过滤
第一行 |
2008-07-13 12:37
2008-07-13 12:35
2008-07-13 12:32
2008-07-13 12:30
2008-07-12 22:49
---------------------------------------------------------------------------------------------------------------
通常认为,第三范式在性能,扩展性和数据完整性方面达到了最好平衡.有以下几个要点。
1.一个表只描述一个单一的事物(实体)。
2.表内的每一个值在整个数据库只出现一次(外键除外)。
3.表内的每一行都应该被唯一的标识(有唯一主键)。
4.表内不存储与主键无关的信息。
---------------------------------------------------------------------------------------- |
2008-07-10 23:05
2008-07-10 22:56
2008-07-07 22:18
ALTER proc [dbo].[proc_jiancebiao]
@zhiling varchar(1000)
AS
/***************************
名稱: [proc_jiancebiao]
作用: 製令多階物料用量表(檢測表)
參數:@zhiling,制令號,用","分隔開如:611603084,611000922
作者:羅代均
時間:-6-1
測試: exec proc_jiancebiao '611603084,611000922'
****************************/
SET NOCOUNT ON
declare @t_level table(itemcode varchar(20),child_itemcode varch |
2008-07-04 12:57
2008-04-26 16:34
2008-01-25 14:31
作者:罗代均 http://hi.baidu.com/luodaijun/
使用基于函数的索引(FBI)时,需要先设置初始化参数query_rewrite_enabled=TRUE(默认为false)
该参数在init.ora里设置,以oracle 9i2为例,init.ora文件路径为D:\oracle\admin\mydb\pfile,我这里把oracle装在D盘,mydb是我的数据库.
--顺便说说,创建函数索引的方法
有表employee,包含3个字段 id, op-date, qty |
2007-11-28 21:26
作者:罗代均 http://hi.baidu.com/luodaijun
在oracle中,select 查询语句,可以使用with,就是一个子查询,oracle 会把子查询的结果放到临时表中,可以反复使用
例子:注意,这是sql语句,不是pl/sql语句, 可以直接放到jdbc执行的
-------------------------------------------------------------------------------------------------------------------
with
--入库信息,利用子查询,将数据预处理一次,这样数据就很少了, 下面可以很快的反复查rkxx,
rkxx as (select sz,zt,sum( |
|
|