無法對視圖創建索引,因為該視圖未綁定到架構


  最近在對視圖進行優化的時候,之前的查詢效率不理想,所有想給視圖添加索引,提供查詢效率,遇到這個問題,查了一位博主的文章,但是說的不是很詳細,在這里說明白一些。

修改此問題 需要在 創建視圖語句中加上 with SCHEMABINDING

--創建索引視圖 create view 視圖名 with schemabinding as select 語句 go
--創建索引視圖需要注意的幾點
--創建索引視圖

1 create view 視圖名 with schemabinding 
2 as
3 select 語句
4 go

---創建索引視圖需要注意的幾點

1. 創建索引視圖的時候需要指定表所屬的架構

--錯誤寫法

1 create view v_f with schemabinding 
2 as
3 select
4    a.a,a.b,b.a,b.b
5 from
6    a join b 
7 on
8    a.id=b.id
9 go

---正確寫法:

1 create view v_f with schemabinding 
2 as
3 select
4    a.a,a.b,b.a,b.b
5 from
6    dbo.a join dbo.b 
7 on
8    a.id=b.id
9 go

2.在創建索引視圖的select語句時,不使用*,必須指定具體的列名
--錯誤寫法

1 create view v_f with schemabinding 
2 as
3 select
4    *
5 from
6    dbo.a join dbo.b 
7 on
8    a.id=b.id
9 go

---正確寫法

1 create view v_f with schemabinding 
2 as
3 select
4    a.a,a.b,b.a,b.b
5 from
6    dbo.a join dbo.b 
7 on
8    a.id=b.id
9 go

3.在創建索引視圖的select 語句中,不能存在重復的列名,這個不舉例了

4. 只能為索引視圖創建唯一聚集索引

--錯誤的寫法

1 create clustered index ix_uniquetb on v_tb
2 go

--正確的寫法

1 create unique clustered index ix_uniquetb on v_tb
2 go


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM