SQL 2005 视图对性能影响
最近发现 视图对性能的影响很大的,原以为通过视图会提高编译的速度,但是却用不到索引了。不知道大家是否认同?
对于多表链接,用视图会带来很大的便利,但是却有可能用不到基表的索引。
如果是创建视图索引,但是视图索引的限制又比较多,而且也将影响增删改的性能。
不知道微软有没有这方面的解决办法。
视图索引
一般情况,用视图不会用不到基表的索引。
SQL code:
为SQL视图建立索引[引用]
CREATE INDEX 语句的要求
在视图上创建的第一个索引必须是唯一聚集索引。在创建唯一聚集索引后,可创建其它非聚集索引。视图上的索引命名规则与表上的索引命名规则相同。唯一区别是表名由视图名替换。有关更多信息,请参见 CREATE INDEX。
除了一般的 CREATE INDEX 要求外,CREATE INDEX 语句还必须满足下列要求:
执行 CREATE INDEX 语句的用户必须是视图的所有者。
当执行 CREATE INDEX 语句时,下列 SET 选项必须设置为 ON:
ANSI_NULLS
ANSI_PADDING
ANSI_WARNINGS
ARITHABORT
CONCAT_NULL_YIELDS_NULL
QUOTED_IDENTIFIERS
必须将选项 NUMERIC_ROUNDABORT 选项设置为 OFF。
视图不能包含 text、ntext 或 image 列,即使在 CREATE INDEX 语句中没有引用它们。
如果视图定义中的 SELECT 语句指定了一个 GROUP BY 子句,则唯一聚集索引的键只能引用在 GROUP BY 子句中指定的列。
--------------------------------------------------------------------------------------------------------------------------------------------------
相关问答:
大家帮忙看看这2个sql语句哪个查询的速度更快点。谢谢帮忙。比较着急。在做性能测试。
select * from
表A LEFT OUTER JOIN 表B ON (表A.id || ' ' =表B.id) ,表C , 表D, 表E
Where其他条件
select * ......
sql可以有两个以上的触发器吗??我指的是for触发器,那其他的呢??
什么意思?
可以的
10个都没问题
可是我写了两个for insert 触发器,造成进程阻塞了呢?怎么办呢?请高人指点
......
表如下
教室ID 座位数 开始时间 结束时间 2009年1月1日 2009年1月2日 2009年1月3日
101 50 08:00 08:30 30 40 50
101 50 09:00 ......
需求如下:
a表:
p_id status
1 0
2 0
b表
rec_id pid purchase_qty receive_qty flag
1 1 10 10 0
2 ......
一个很奇怪的问题
SQL code
select * from Gprs_DataInof
--可以查到所有的数据
select * from Gprs_DataInof where DataTime between 1900-10-16 1:01:00' and '2009-10-20 1:01:00'
--一条数据 ......