数据库视图优化
-----------------------------------------------------------------------------------------------------------------------------------------
我给你 最简单、最准、最快 的判断方法,3 秒就能看出一个视图是普通视图还是索引视图。
一、最快判断方法(直接看有没有索引)
SQL Server 里:
只要视图上建了索引 → 就是索引视图
没有索引 → 就是普通视图
二、3 种判断方法(任选一种)
方法 1:看 SSMS 界面(最直观)
打开 SQL Server 管理工具:
- 展开数据库 → 视图
- 找到你的视图 → 展开它
- 看有没有 “索引” 文件夹
- 有索引文件夹 = 索引视图
- 没有索引文件夹 = 普通视图
方法 2:执行 SQL 查(最准确)
复制下面这句,直接运行,把
YourViewName 换成你的视图名:sql
SELECT * FROM sys.indexes
WHERE object_id = OBJECT_ID('你的视图名')
- 有结果 = 索引视图
- 无结果 = 普通视图
方法 3:看视图创建语句(一看就懂)
右键视图 → 编写视图脚本为 → CREATE 到
普通视图长这样
sql
CREATE VIEW dbo.v_user
AS
SELECT id,name FROM users
没有索引,没有 SCHEMABINDING(不一定),没有聚集索引
索引视图一定长这样
sql
CREATE VIEW dbo.v_user
WITH SCHEMABINDING -- 必须有
AS
SELECT id,name FROM dbo.users
-- 关键!!!创建了索引
CREATE UNIQUE CLUSTERED INDEX PK_v_user
ON dbo.v_user(id)
只要看到视图后面 带 CREATE INDEX,就是 索引视图。
三、一句话总结(背住就够)
- 普通视图 = 只存 SQL,不存数据,不影响写入
- 索引视图 = 带索引,物理存数据,写入会变慢
判断口诀:
有索引 = 索引视图
没索引 = 普通视图
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------

浙公网安备 33010602011771号