我正在尝试为架构绑定视图创建索引。此视图包含并集所有运算符和一些联接。如何为该视图创建索引?因为我在我的过程中使用左联接来使用视图类型。所以我必须提高性能。
例如
create table a
(
prodid int,
prodname varchar(100)
)
insert into a values(1,'ramesh')
create table b
(
prodid int,
prodname varchar(100)
)
insert into b values(2,'kumar')
create view v1
with schemabinding
as
select tb1.prodid, tb1.prodname
from dbo.a tb1
union all
select tb2.prodid, tb2.prodname
from dbo.b tb2
视图创建成功,但是无法为以上视图创建索引-我收到错误
它包含一个或多个联合,相交运算符
还有其他方法可以为此视图创建索引吗?
CREATE UNIQUE CLUSTERED INDEX CX_V1
ON dbo.v1(prodid, prodname);
答案 0 :(得分:1)
问题不在于SCHEMABINDING
,而是因为索引视图中不允许UNION ALL
。我希望错误消息能够清楚地表明这一点。参见the documentation for index view requirements。
为什么还要为此视图编制索引?假设基础表在prodid
和prodname
上具有唯一的非聚集索引,我不希望索引视图会显着提高性能。
答案 1 :(得分:0)
您不能在使用联合运算符的视图上创建索引,而且我认为没有办法。