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 子句中指定的列。
--------------------------------------------------------------------------------------------------------------------------------------------------
相关问答:
我的Tblworkbill表的数据如下:
id workbillno ..................
1 1
2 6
3 a1
4 c2
5 2
6 aa
7 ......
为了满足数据查询的速度问题,我将一张数据量大的学生表按年度分成多个表
students_2008, students_2009然后我又做了一个模板表students_template,模板表中的字段和students_2008, students_2009一样,只不过是一个 ......
有2个表啊:
表名:yh
用户编码 用户名称
001 a
002 b
003 c
表名:ys
用户编码 本期指数 抄表时间
001 ......
一个很奇怪的问题
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'
--一条数据 ......