社区
MS-SQL Server
帖子详情
如何在给视图添加索引?
douer2002
2003-04-02 03:59:20
如何在给视图添加索引?
...全文
9974
11
打赏
收藏
如何在给视图添加索引?
如何在给视图添加索引?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
rlx
2003-04-05
打赏
举报
回复
up
douer2002
2003-04-05
打赏
举报
回复
top!
w_rose
2003-04-05
打赏
举报
回复
“在视图引用的基本表上加索引不可以吗?”其实这个与索引视图的要领无关。
你“给基本表建立了索引,然后为一些常用的查询建立视图,然后给这些视图建立索引”,这是一个进化的过程,使得在复杂性提高时仍然保持较高的查询效率。
w_rose
2003-04-05
打赏
举报
回复
如果你从一个视图中查询一些结果需要10分钟,那么你从索引过的同一视图中查寻可能只需要10秒钟,这就是“索引”视图的好处。他相当于自动给你建立和维护了堆触发器。当然,还兼有普通视图的能够“从视图更新基本表”的好处。
tjan
2003-04-03
打赏
举报
回复
也可以的
一般来讲,视图索引对静态视图的效果最好
douer2002
2003-04-03
打赏
举报
回复
在视图引用的基本表上加索引不可以吗?
我很关注!
vbasten
2003-04-03
打赏
举报
回复
在视图引用的基本表上加索引不可以吗?
douer2002
2003-04-03
打赏
举报
回复
这么复杂啊
douer2002
2003-04-03
打赏
举报
回复
这么负责阿
tjan
2003-04-02
打赏
举报
回复
可以!
在视图上创建聚集索引之前,该视图必须满足下列要求:
当执行 CREATE VIEW 语句时,ANSI_NULLS 和 QUOTED_IDENTIFIER 选项必须设置为 ON。OBJECTPROPERTY 函数通过 ExecIsAnsiNullsOn 或 ExecIsQuotedIdentOn 属性为视图报告此信息。
为执行所有 CREATE TABLE 语句以创建视图引用的表,ANSI_NULLS 选项必须设置为 ON。
视图不能引用任何其它视图,只能引用基表。
视图引用的所有基表必须与视图位于同一个数据库中,并且所有者也与视图相同。
必须使用 SCHEMABINDING 选项创建视图。SCHEMABINDING 将视图绑定到基础基表的架构。
必须已使用 SCHEMABINDING 选项创建了视图中引用的用户定义的函数。
表和用户定义的函数必须由 2 部分的名称引用。不允许使用 1 部分、3 部分和 4 部分的名称。
视图中的表达式所引用的所有函数必须是确定性的。OBJECTPROPERTY 函数的 IsDeterministic 属性报告用户定义的函数是否是确定性的。有关更多信息,请参见确定性函数和非确定性函数。
视图中的 SELECT 语句不能包含下列 Transact-SQL 语法元素:
选择列表不能使用 * 或 table_name.* 语法指定列。必须显式给出列名。
不能在多个视图列中指定用作简单表达式的表的列名。如果对列的所有(或只有一个例外)引用是复杂表达式的一部分或是函数的一个参数,则可多次引用该列。例如,下列选择列表是非法的:
SELECT ColumnA, ColumnB, ColumnA
下列选择列表是合法的:
SELECT ColumnA, COUNT(ColumnA), ColumnA + Column B AS AddColAColB FROM T1
SELECT SUM(ColumnA), ColumnA % ColumnB AS ModuloColAColB, COUNT_BIG(*) FROM T1 GROUP BY ColumnA
派生表。
行集函数。
UNION 运算符。
子查询。
外联接或自联接。
TOP 子句。
ORDER BY 子句。
DISTINCT 关键字。
COUNT(*)(允许 COUNT_BIG(*)。)
AVG、MAX、MIN、STDEV、STDEVP、VAR 或 VARP 聚合函数。如果在引用索引视图的查询中指定 AVG、MAX、MIN、STDEV、STDEVP、VAR 或 VARP,如果视图选择列表包含以下替换函数,则优化器会经常计算需要的结果。
例如,索引视图选择列表不能包含表达式 AVG(SomeColumn)。如果视图选择列表包含表达式 SUM(SomeColumn) 和 COUNT_BIG(SomeColumn),则 SQL Server 可为引用视图并指定 AVG(SomeColumn) 的查询计算平均数。
引用可为空的表达式的 SUM 函数。
全文谓词 CONTAINS 或 FREETEXT。
COMPUTE 或 COMPUTE BY 子句。
如果没有指定 GROUP BY,则视图选择列表不能包含聚合表达式。
如果指定了 GROUP BY,则视图选择列表必须包含 COUNT_BIG(*) 表达式,并且,视图定义不能指定 HAVING、CUBE 或 ROLLUP。
通过一个既可以取值为 float 值也可以使用 float 表达式求值的表达式而生成的列不能作为索引视图或表的索引的键。
愉快的登山者
2003-04-02
打赏
举报
回复
不能在视图上建立索引。
Qt之模型/
视图
(实时更新数据)
Qt实现的MVC编程 功能: (1)
添加
委托(进度条) (2)显示文件名称、大小、进度、速度、剩余时间、状态等。 (3)可进行
添加
、更新、删除、清空等操作。 (4)实时更新数据
SQL语句大全(经典珍藏版)
经典的SQL语句大全 初学进阶数据库必备资源
MySQL速查手册
整理人:ocean 本手册仅用于学习交流,任何人未经允许不得以任何形式将其用于商业用途。
Android 任意层别 树形控件
代码为博客的实例代码:http://blog.csdn.net/lmj623565791/article/details/40212367 有问题博客留言
android快速滑动列表+首字母提示(仿通讯录,iphone)
仿iphone的通讯录,A-Z在最右边,触摸到那个字母,列表就挑到那里。
MS-SQL Server
34,838
社区成员
254,634
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章