当前位置: 首页 > news >正文

最好的网站设计公司源码 php室内设计网站会员哪个值得买

最好的网站设计公司源码 php,室内设计网站会员哪个值得买,网站域名备案证明,做网站优化费用在索引深入浅出#xff1a;非聚集索引的B树结构在聚集表里#xff0c;在聚集表里#xff0c;我们看到非聚集索引的叶子层只包含非聚集索引键和聚集索引键。从聚集表结构或堆表结构里拿到剩下列#xff0c;SQL Server需要进行书签/键查找操作。很多情况下书签或键查找非常消… 在索引深入浅出非聚集索引的B树结构在聚集表里在聚集表里我们看到非聚集索引的叶子层只包含非聚集索引键和聚集索引键。从聚集表结构或堆表结构里拿到剩下列SQL Server需要进行书签/键查找操作。很多情况下书签或键查找非常消耗资源。我们来看个例子。 在这里我们打开了IO统计信息还有点击工具栏的显示包含实际的执行计划。 1 USE IndexDB2 GO3 DROP TABLE dbo.SalesOrderDetail 4 GO 5 SELECT * INTO dbo.SalesOrderDetail FROM AdventureWorks2008r2.Sales.SalesOrderDetail6 GO7 CREATE UNIQUE CLUSTERED INDEX ix_SalesOrderDetail ON dbo.SalesOrderDetail(SalesOrderDetailID)8 GO9 CREATE UNIQUE NONCLUSTERED INDEX ix_Productid ON dbo.SalesOrderDetail(ProductId,SalesOrderId) 10 GO 11 SET STATISTICS IO ON 12 GO 13 SELECT SalesOrderDetailid,productid,salesorderid,orderqty,unitprice 14 FROM SalesOrderDetail 15 WHERE productid707 AND SalesOrderID43680 在IO统计信息里SQL Server拿每条记录需要进行5个IO操作。在执行计划里我们看到查询开销的50%贡献给了书签查找键查找操作。 注意这个表的非聚集索引有229个页非聚集索引的B树结构深度为2。在这个非聚集索引里只要进行2个IO操作就可以完成查找操作另外3个IO贡献给了书签查找。你可以用DBCC IND命令验证下或者参考下索引深入浅出(4/10)非聚集索引的B树结构在聚集表。 假设这个查询用不同的参数在应用程序里经常用到现在你需要优化它。我们该怎么做我们对此唯一能优化的话就是避免键查找Key lookup操作。因此我们修改下非聚集索引把剩下2列OrderQty UnitPrice不是聚集索引键也不是非聚集索引键也加入非聚集索引键。 1 DROP INDEX ix_Productid ON dbo.SalesOrderDetail 2 GO 3 CREATE UNIQUE NONCLUSTERED INDEX ix_Productid ON dbo.SalesOrderDetail(ProductId,SalesOrderId,OrderQty ,UnitPrice) 4 GO 5 SELECT SalesOrderDetailid,productid,salesorderid,orderqty,unitprice FROM SalesOrderDetail WHERE productid707 AND SalesOrderID43680 从执行计划里我们可以看到我们已经回避了键查找操作把IO操作从5个降到了3次。但是我们如果用DBCC IND看下非聚集索引我们发现由于还这个改动我们的非聚集索引深度增加了。因为索引层的增加非聚集索引需要进行3次IO来完成这个操作。这将是最糟糕的如果选择列更多的话我们就需要在非聚集索引里增加更多的列来避免键查找操作。 覆盖索引covering index 就是用来解决这个问题的。覆盖索引帮助我们在非聚集索引的叶子层增加非主键列最小可能增加B树结构的深度。可以用CREATE INDEX语句增加包含列完成。 当索引包含查询列是这个为称为覆盖索引。当我们创建非聚集索引去覆盖一个查询时我们可以在索引里包含非主键列来覆盖查询列这些覆盖列在主查询列里不会用到。这样查询性能会提升因为查询优化器在索引里就可以定位到需要列的数据表或聚集索引不会被访问。 1 DROP INDEX ix_Productid ON dbo.SalesOrderDetail 2 GO 3 CREATE UNIQUE NONCLUSTERED INDEX ix_Productid ON dbo.SalesOrderDetail(ProductId,SalesOrderId) 4 include(OrderQty ,UnitPrice) 5 GO 6 SELECT SalesOrderDetailid,productid,salesorderid,orderqty,unitprice FROM SalesOrderDetail 7 WHERE productid707 AND SalesOrderID43680 可以发现我们已经避免了键查找操作并把IO操作降到了2次。IO操作清楚的告诉我们聚集索引的深度是2。我们用DBCC IND和DBCC PAGE命令验证下。 1 SELECT index_id FROM sys.indexes WHERE nameix_Productid AND OBJECT_ID OBJECT_ID(SalesOrderDetail)2 GO3 DBCC ind(IndexDB,SalesOrderDetail,2) 4 5 TRUNCATE TABLE dbo.sp_table_pages6 INSERT INTO sp_table_pages EXEC(DBCC IND(IndexDB,SalesOrderDetail,2))7 GO8 9 SELECT * FROM dbo.sp_table_pages ORDER BY IndexLevel DESC --根节点/索引页 10 11 DBCC TRACEON(3604) 12 DBCC PAGE(IndexDB,1,2800,3)--根页 13 14 DBCC TRACEON(3604) 15 DBCC PAGE(IndexDB,1,2736,3)--叶子页 include语句提到的列已经加到了叶子层的页没有对非页层页造成影响。列包含非常有用我们可以把不能在索引键里加的列在列包含里加入。另外避免超过当前索引大小的限制最大键列数为 16最大索引键大小为 900 字节。我们可以包含除去textntext和image类型的其他列列包含也同样支持计算列computed column。 参考文章  http://www.sqlservercentral.com/blogs/practicalsqldba/2013/03/25/sql-server-part-8-explaining-the-covering-index-or-included-columns/ 转载于:https://www.cnblogs.com/woodytu/p/4509673.html
http://wiki.neutronadmin.com/news/346149/

相关文章:

  • pc网站建设怎么弄软件商店oppo官方下载
  • 东莞品牌网站制作公司视频工厂网站建设
  • dede网站名称不能中文长沙房地产网站设计
  • 中国建设招标网是什么网站wordpress 授权登录页面
  • 安陆建设局网站如何使用阿里云建设网站
  • 南通网站建设系统主机屋 建网站教程
  • 重庆高端网站制作上海到北京高铁最快2个小时
  • 桂林做网站建设的公司南充网站建设
  • 站长之家的作用柳州seo培训
  • 网站后台管理的超链接怎么做免费发布广告信息网
  • 网站建设公司口碑排名合肥网站建设的价格
  • wordpress优惠码广州做seo整站优化公司
  • 福建龙岩网站制作公司网络组建论文
  • 查外链网站企业查询电话号码
  • 专业建站公司建站系统北京网站建设hj华网天下
  • 深圳建设网站速成班网站友情链接是什么
  • 做网站需要啥中铁三局招聘学历要求
  • 广州中新知识城开发建设网站客厅装修效果图片大全
  • 青岛主流网站互联网公司营业执照经营范围
  • 用例图在线制作网站杭州做网站优化
  • 网站搜索功能实现开发定制软件公司
  • 湛江免费建站鄞州区网站建设报价
  • 凡科网做的网站保存后就上传了吗餐饮网站建设可行性分析
  • 做网站定制开发的公司哪家好找回原来的百度
  • 做网站一般用什么几号字电子科技公司网站
  • 北京天通苑 做网站企业网站黄页怎么做
  • 建站技术服务莱芜新闻主持人名单
  • 如何做合作社网站wordpress博客导航开源主题
  • 深圳网站优化搜索抖音推广项目计划书
  • 网站里的聊天怎么做的wordpress安装文件