易截截图软件、单文件、免安装、纯绿色、仅160KB

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 子句中指定的列。

--------------------------------------------------------------------------------------------------------------------------------------------------


相关问答:

SQL语句效率问题 - 其他数据库开发 / 其他数据库

大家帮忙看看这2个sql语句哪个查询的速度更快点。谢谢帮忙。比较着急。在做性能测试。
select * from
  表A LEFT OUTER JOIN 表B ON (表A.id || ' ' =表B.id) ,表C , 表D, 表E
Where其他条件
select * ......

sql可以有两个以上的触发器吗??

sql可以有两个以上的触发器吗??我指的是for触发器,那其他的呢??
什么意思?

可以的

10个都没问题

可是我写了两个for insert 触发器,造成进程阻塞了呢?怎么办呢?请高人指点
......

求一SQL - MS-SQL Server / 基础类

表如下
教室ID 座位数 开始时间 结束时间 2009年1月1日 2009年1月2日 2009年1月3日
  101 50 08:00 08:30 30 40 50  
  101 50 09:00 ......

求一sql【谢谢】 - MS-SQL Server / 基础类

需求如下:
a表:
 p_id status  
  1 0
  2 0
b表
rec_id pid purchase_qty receive_qty flag
1 1 10 10 0
2 ......

SQL时间段问题

一个很奇怪的问题 
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'
--一条数据 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号