在执行文件数据修改时,所生成的计划会包含两个阶段。第一阶段是只读的,用于判断哪些行必须插入、更新或删除。
在第一阶段,执行计划生成描述变更的数据流。对于INSSERT语句,由于你有列值,因此该数据包含列值。DELETE语句包含键列,UPDATE语句的数据流既包含变更列值,也包含表键。如果存在外键,计划还会包含约束验证。它也会维护索引。如果存在触发器,还会触发触发器。
对于INSERT、Update/deleteYUJU,两种维护策略分别为:逐行和逐索引。比如下面DELETE查询,生成的是逐行的查询计划。
对于逐行计划,SQL Server2014为查询影响的每一行同时维护索引和基本表。对所有非聚集索引的更新也同时会更新基本表的每一行。基本表可以是堆表或聚集索引表。如果查看聚集索引删除信息,就可以看到框起来的Object(对象)信息,在列表中可以看出聚集索引和非聚集索引都被列出,这也意味着索引以逐行操作方式进行维护。
该查询中的变化是WHERE子句(变为<)影响更多的行,该查询使用Sales.SalesOrderHeader表产生计划。
该查询计划使用逐索引维护。计划首先在聚集索引上删除满足条件的行,与此同时,创建链式假脱机表,其中包含其他需要维护的非聚集索引所需的聚集键值。SQL Server2014表上每作符指明,SQL Server2014根据要删除数据的索引键列对数据排序,从而可以优化访问数据页。序列操作符强制计划的每一个分支按顺序执行。SQL Server2014按照计划从上到下逐个更新索引。
如查询计划所示,逐索引维护方式更加复杂。但由于该方式在排序索引键(排序(sort)操作符)之后才维护各索引,因此无须对同一个文件数据页访问两次,从而节省I/O。因此,在更新大量行时,优化器通常会选择逐索引计划。
关于TeamDoc软件:
TeamDoc是基于服务器/客户端架构的轻量级文件管理软件。TeamDoc将文件集中加密存储在您单位自己的服务器中,员工使用TeamDoc客户端访问服务器,从而获得与自己权限相关的权限:登入后与“我的电脑”界面类似,可以看到自己该看的文件,编辑自己能编辑的文档,对于能看到的文件,还可以细分文档权限,进而做到能看不能拷,能看不能截屏等功能,多种权限灵活设置,在线协同编辑、全文搜索、日志与版本追踪,快速构建企业文档库。告别假大空,我们提供值得您选择的、易用的、可用的文档管理软件。现在就访问TeamDoc首页
TeamDoc软件界面(点击可放大)
版权所有:南京网亚计算机有限公司,本文链接地址: 文件数据修改查询计划