- 博客(18)
- 收藏
- 关注
原创 索引的查询路径9
/* 9、两个索引筛选*/--修改IX_WorkOrder_ProductID索引,使其不包含任何列--添加索引IX_WorkOrder_StartDate(StartDate) --打开一个查询编辑器,点击编辑器上面的显示查询计划按钮SET STATISTICS TIME ON --显示查询执行时间SET STATISTICS IO ON --显示查询的io读取
2013-08-01 11:36:25 539
原创 索引的查询路径8
/* 8、覆盖索引(IX_WorkOrder_ProductID(Include StartDate))*/--修改IX_WorkOrder_ProductID索引,使其包含StartDate列 --打开一个查询编辑器,点击编辑器上面的显示查询计划按钮SET STATISTICS TIME ON --显示查询执行时间SET STATISTICS IO ON --显示查询
2013-08-01 11:35:23 506
原创 索引的查询路径7
/* 7、书签查找(NonClustered Index Seek,查找聚集键和非聚集索引列)*/--打开一个查询编辑器,点击编辑器上面的显示查询计划按钮SET STATISTICS TIME ON --显示查询执行时间SET STATISTICS IO ON --显示查询的io读取CHECKPOINT 1 --提交检查点,DBCC DROPCLEANBUFFERS
2013-08-01 11:34:32 565
原创 索引的查询路径6
/* 6、书签查找(NonClustered Index Seek)*/--打开一个查询编辑器,点击编辑器上面的显示查询计划按钮SET STATISTICS TIME ON --显示查询执行时间SET STATISTICS IO ON --显示查询的io读取CHECKPOINT 1 --提交检查点,DBCC DROPCLEANBUFFERS --删除数据缓存DB
2013-08-01 11:33:38 431
原创 索引的查询路径5
/* 5、非键列筛选(NonClustered Index Scan filter)*/--打开一个查询编辑器,点击编辑器上面的显示查询计划按钮SET STATISTICS TIME ON --显示查询执行时间SET STATISTICS IO ON --显示查询的io读取CHECKPOINT 1 --提交检查点,DBCC DROPCLEANBUFFERS --删除
2013-08-01 11:32:40 496
原创 索引的查询路径4
/* 4、聚集索引查找(大范围)(Clustered Index Seek)*/--打开一个查询编辑器,点击编辑器上面的显示查询计划按钮SET STATISTICS TIME ON --显示查询执行时间SET STATISTICS IO ON --显示查询的io读取CHECKPOINT 1 --提交检查点,DBCC DROPCLEANBUFFERS --删除数据缓存
2013-08-01 11:31:22 554
原创 索引的查询路径3
/* 3、聚集索引查找(小范围)(Clustered Index Seek)*/--打开一个查询编辑器,点击编辑器上面的显示查询计划按钮SET STATISTICS TIME ON --显示查询执行时间SET STATISTICS IO ON --显示查询的io读取CHECKPOINT 1 --提交检查点,DBCC DROPCLEANBUFFERS --删除数据缓存
2013-08-01 11:29:41 444
原创 索引的查询路径2
/* 2、聚集索引查找(Clustered Index Seek)*/--打开一个查询编辑器,点击编辑器上面的显示查询计划按钮SET STATISTICS TIME ON --显示查询执行时间SET STATISTICS IO ON --显示查询的io读取CHECKPOINT 1 --提交检查点,DBCC DROPCLEANBUFFERS --删除数据缓存DB
2013-08-01 11:28:04 467
原创 索引的查询路径1
/* 实验:索引的查询路径性能*/--准备条件:SQLSERVER 2008 R2,安装了示例数据库AdventureWorks--由于公司上网受限制,截图就免了。--示例的数据库表对象为Production.WorkOrder(总共72591行数据)--该对象有三个索引--PK_WorkOrder_WorkOrderID(聚集索引)--IX_WorkOrder_P
2013-08-01 11:26:48 1427 1
原创 数据库索引使用情况
SELECT SERVERPROPERTY('IsClustered')SELECT DISTINCT OBJECT_NAME(SI.object_id) AS Table_Name , SI.name AS Statistics_Name , STATS_DATE(SI.object_id, SI.index
2013-07-19 10:03:54 523
原创 数据库动态管理视图DMV(4)
--查询tempdb中是否存在一个或多个正在获取页面锁的等待SELECT session_id,wait_duration_ms,resource_description FROM SYS.dm_os_waiting_tasksWHERE wait_type LIKE 'PAGE%LATCH_%' AND resource_description LIKE '2:%'--查询tempd
2013-07-19 10:01:28 603
原创 数据库动态管理视图DMV(3)
--查询引发io最多的前10位查询或批处理SELECT TOP 10 (total_logical_reads/execution_count) AS AVG_LOGICAL_READS, (total_logical_writes/execution_count) AS AVG_LOGICAL_WRITES, (total_physical_reads/execution_cou
2013-07-19 10:00:19 463
原创 数据库动态管理视图DMV(2)
SELECT * FROM SYS.dm_os_memory_clerks WHERE [TYPE]='MEMORYCLERK_SQLBUFFERPOOL'SELECT * FROM SYS.dm_os_ring_buffers--缓冲池消耗内存总量SELECT sum(multi_pages_kb+awe_allocated_kb+virtual_memory_committed_k
2013-07-19 09:58:12 575
原创 数据库动态管理视图DMV(1)
--优化查询计划花费时间SELECT * FROM SYS.dm_exec_query_optimizer_info WHERE [counter]='OPTIMIZATIONS' OR [counter]='ELAPSED TIME'--查询状态SELECT * FROM SYS.dm_exec_query_stats--等待任务SELECT * FROM SYS.dm_os
2013-07-19 09:27:53 875
原创 POVIT行转列
CREATE TABLE [Study].[Student]( [Sno] [varchar](10) NOT NULL, [Sname] [nvarchar](20) NOT NULL, [ClassID] [varchar](10) NOT NULL,PRIMARY KEY CLUSTERED ( [Sno] ASC)WITH (PAD_INDEX = OFF,
2013-07-18 09:10:52 624
原创 理解SQLSERVER脏页
很多关于SQLSERVER的书籍中都提到脏页,而脏页涉及到数据库的恢复模式,读写方式,并发等等,什么是脏页,当客户端发送T-SQL语句到数据库时,数据库引擎执行修改数据时,如果在内存中找不到数据,会先从磁盘读取数据到内存(这一个过程叫page fault,缺页错误),然后在内存中修改数据,这个时候在数据库未执行检查点操作或惰性写入器未执行写入之前,磁盘和内存中的数据是不一致的,那么
2013-06-18 15:00:38 1848
原创 数据库上层组件
看过inside SQLSERVER2005 T-SQL查询这本书的人都知道T-SQL的逻辑执行顺序,我写这篇文章的目的就是让做数据库优化工作的朋友了解SQLSERVER上层组件如何处理T-SQL语句。数据库处理组件分查询引擎和存储引擎。1、网络协议层,这一层很少有朋友去了解他们,它分4种协议,这四种协议大家在安装SQLSERVER实例后,可以在配置管理器中看到:(1)内存共享协议
2013-06-16 13:07:34 867
原创 查看数据库阻塞
--创建递归查询数据库的阻塞WITH CTE_TABLE(session_id,wait_type,blocking_session_id,resource_type,DATABASE_NAME,resource_lock_partition,request_mode,request_type,request_status,LV)AS(SELECT A.session_id,
2013-05-15 11:18:25 2444
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人