sql server 2008 优化及性能监控
Felixzhaowenzhong
勤能补拙
展开
-
SQL Server 2008内存及I/O性能监控
<br />内存相关概念<br />以下均是针对Window 32位系统环境下,64位的不在下面描述情况下。<br />用户模式和内核模式(user mode& kernel mode)<br />为了防止用户程序访问并篡改操作系统的关键部分,Windows使用了2种处理器存取模式:用户模式和内核模式。顾名思义,内核模式是给操作系统核心代码和基本驱动用的,用户模式给用户应用程序。在内核模式下程序可以访问所有的内存和硬件,并使用所有的处理器指令。操作系统程序比用户程序有更高的权限,使得系统设计者可以确保用户程转载 2011-05-24 10:28:00 · 2094 阅读 · 0 评论 -
索引碎片判断及整理、自动维护清理索引碎片
内部碎片: 指 当索引页没有用到最大量时就产生了内部碎片。虽然在一个有频繁数据插入的应用程序里这也许有帮助,然而设置一个fill factor(填充因子)会在索引页上留下空间,服务器内部碎片会导致索引尺寸增加,从而在返回需要的数据时要执行额外的读操作。这些额外的读操作会降低查询的性能 外部碎片; 指 表中的数据被修改会产生碎片。当插入或更新表中数据时,表的对应聚簇索引和受影响的聚簇原创 2011-11-17 11:00:12 · 7614 阅读 · 0 评论 -
SQL 优化--索引
Sys.dm_exec_requests是检查SQL Server性能瓶颈的有力工具update statistics t_goods with fullscan---更新表的统计信息聚簇索引的索引叶子就是数据本身。非聚簇索引的索引叶子节点包含的是指向数据的书签(即数据行号或聚集索引的key) 索引优化原则:主要是减少逻辑读的次数。逻辑读中包含从内存数据缓存中访原创 2011-08-16 11:34:49 · 1221 阅读 · 0 评论 -
DB中耗时的 存储过程 及执行详细情况
SELECT a.object_id, a.database_id, OBJECT_NAME(object_id, database_id) 'proc name',a.cached_time, a.last_execution_time, a.total_elapsed_time, a.total_elapsed_time/a.execution_count AS [avg_elaps原创 2012-01-20 10:25:55 · 1799 阅读 · 0 评论 -
全文索引
全文索引是基于要编制索引的文本中的各个标记来生成倒排序、堆积且压缩的索引结构。每个表或索引视图只允许有一个全文索引。该索引最多可包含 1024 列。,该对象中必须有一唯一并且非空的列。全文索引大小受运行SQL SERVER实例的计算机的可用内存资源限制。对全文索引的创建和维护过程 称为 “索引填充”。索引填充分为:完全填充、基于时间戳的增量式填充、基于更改跟踪的填充--确定是否原创 2011-08-25 13:04:04 · 1634 阅读 · 0 评论 -
SQL 优化--杂项整理
第1规范:没有重复的组或多值的列,这是数据库设计的最低要求。第2规范: 每个非关键字段必须依赖于主关键字,不能依赖于一个组合式主关键字的某些组成部分。消除部分依赖,大部分情况下,数据库设计都应该达到第二范式。第3规范: 一个非关键字段不能依赖于另一个非关键字段。消除传递依赖,达到第三范式应该是系统中大部分表的要求,除非一些特殊作用的表。对查询进行优化,应尽量避免全表扫描原创 2011-08-16 11:37:07 · 1075 阅读 · 0 评论 -
DBA 需要知道N种对数据库性能的监控SQL语句
--DBA 需要知道N种对数据库性能的监控SQL语句-- IO问题的SQL内部分析下面的DMV查询可以来检查当前所有的等待累积值。Select wait_type, waiting_tasks_count, wait_time_msfrom sys.dm_os_wait_stats where wait_type l原创 2012-02-28 15:34:47 · 2557 阅读 · 0 评论 -
SQL 索引视图
视图是对数据(一种元数据类型)的一种描述。当创建了一个典型视图时,通过封装一个 SELECT 语句(定义一个结果集来表示为虚拟表)来定义元数据。当在另一个查询的 FROM 子句中引用视图时,将从系统目录检索该元数据,并替代该视图的引用扩展元数据。视图扩展之后,SQL Server 查询优化器会为执行查询编译一个执行计划。查询优化器会搜索针对某个查询的一组可能的执行计划,并根据对执行每个查询计划所需原创 2011-08-17 11:07:46 · 3022 阅读 · 0 评论 -
定位 占用CPU最多 SQL
--占用CPU最多SELECT TOP 50 total_worker_time / execution_count AS [Avg CPU Time], (SELECT Substring(text, statement_start_offset / 2, ( CASE原创 2012-05-17 19:30:18 · 1829 阅读 · 0 评论 -
处理百万级以上的数据提高查询速度的方法
处理百万级以上的数据提高查询速度的方法: 1.应尽量避免在 where 子句中使用!=或 2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 3.应尽量避免在 where 子句中对字段进行 null 值判断,否转载 2011-07-11 11:53:41 · 3833 阅读 · 0 评论 -
SQL Server 查看死锁的存储过程
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_who_lock]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop proce原创 2011-08-05 15:23:39 · 1008 阅读 · 0 评论 -
SQLserver狂占CPU解决方案
<br />1.打开操作系统启动时PAE 配置项;步骤:找到系统安装的引导位置的目录下找到boot.ini文件,默认是隐藏只读的,找到 Windows2003 启动配置,在后面加上空格 /PAE ,保存;重启示例所示: multi(0)disk(0)rdisk(0)partition(2)/%systemroot%= "Windows Server 2003 Datacenter Edition " /PAE 4.1. 在Windows Server 2003使用SQL Server 2005概述 SQL转载 2011-05-24 10:57:00 · 3197 阅读 · 0 评论 -
T-SQL之哈希索引
当表中某个字段过长时(通常指 varchar\nvarchar之类),建立索引就不适合的了,建立索引的一个原则就是索引不能太宽。对于varchar(max)、nvarchar(max) 和 varbinary(max) 大值数据类型根本就不能建立索引。但是又必须提高查询效率,这时 哈希索引就派上了用场。最近在论坛里回复了一个 哈希索引的贴。据楼主 拿到其环境中测试后 效率 提高了 89原创 2012-05-17 15:29:36 · 3057 阅读 · 2 评论
分享