|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
每个Rows_log_event中包含event_type,可选值为WRITE_ROWS_EVENT、UPDATE_ROWS_EVENT、DELETE_ROWS_EVENT。从宏名字就能看出用途。在上一篇文章,我们解说了SQLServer中视图的一些特性与优化。本章我们解说SQLServer中另外一种特别的视图--索引视图。
关于一般视图的创立与操纵,请参看本站:
SQLServer中视图的特性与优化
在上述的文章中我们讲到,SQLSERVER视图实在就是一段SQL语句,在视图被挪用时静态实行界说的SQL,前往了局集。
在SQLServer2005后,微软推出了索引视图,索引视图与之前的一般视图有一个实质的区分,就是索引视图中的了局集是保留在数据库中的,而不是每次静态实行的了局。如许,查询时就能够像查询基本表一样,功能失掉很多的提拔。我们还能够在索引视图上创立索引,让索引视图的功能失掉进一步提拔。
那末,要怎样建创索引视图呢?我们能够经由过程关头字SchemaBinding来创立,例句以下:
createviewv_salarywithSchemabindingas
selectname,salaryfromdbo.Salary
在创立索引视图的时分,我们要注重以下几点:
1,在索引视图中,不克不及利用*号,必具指定一切了局会合的列名。
我们试图在实在利用*号:
createviewv_ss_salarywithSchemabindingas
select*fromdbo.Salary
报错:在绑定到架构的工具中不同意利用语法*。
2,在索引视图中,一切用到的表前都必需加表所属的架构dbo。
我们试图在表前不加dbo:
createviewv_salarywithSchemabindingas
selectname,salaryfromSalary
报错:没法将视图v_salary绑定到架构,由于称号Salary关于架构绑定有效。称号必需由两部分组成,而且工具不克不及援用本身。
3,在索引视图中不克不及有反复的列(实在在一般视图中也有该限定)
我们试图在视图中创立反复的列:
createviewv_salarywithSchemabindingas
selectname,namefromdbo.Salary
报错:各视图或函数中的列名必需独一。在视图或函数v_salary中屡次指定了列名name。
4,在索引视图中只能创立独一会萃索引。
我们试图在索引视图上创立会萃索引:
createclusteredindexIX_nameonv_salary(name)
报错:没法对视图v_salary创立索引,它没有独一会萃索引
准确的创立语句以下:
createuniqueclusteredindexIX_nameonv_salary(name)
假定v_salary是一般视图,假如我们为它创立索引,会报以下毛病:
没法对视图v_salary创立索引,由于该视图未绑定到架构
删除索引视图:
·删除索引视图的办法与删除一般视图的办法一样,在SQLServerManagementStudio中,选中要删除的视图,点击右键菜单中的"删除"命令便可。
·利用SQL语句删除办法以下:
dropview视图名
如果某个数据列里包含许多重复的值,就算为它建立了索引也不会有很好的效果。比如说,如果某个数据列里包含的净是些诸如“0/1”或“Y/N”等值,就没有必要为它创建一个索引。 |
|