监控SQL Server的运行状况(1)
Microsoft SQL Server 2005 提供了一些工具来监控数据库。方法之一是动态管理视图。动态管理视图 (DMV) 和动态管理函数 (DMF) 返回的服务器状态信息可用于监控服务器实例的运行状况、诊断问题和优化性能。[@more@]Microsoft SQL Server 2005 提供了一些工具来监控数据库。方法之一是动态管理视图。动态管理视图 (DMV) 和动态管理函数 (DMF) 返回的服务器状态信息可用于监控服务器实例的运行状况、诊断问题和优化性能。 常规服务器动态管理对象包括: dm_db_*:数据库和数据库对象 dm_exec_*:执行用户代码和关联的连接 dm_os_*:内存、锁定
关系型数据库性能测试参考指标----SQL Server
注:以下指标取自SQL Server自身提供的性能计数器。[@more@]SQL Server指标名称指标描述指标范围指标单位1.SQL Server中访问方法(Access Methods)对象包含的性能计数器全表扫描/秒(Full Scans/sec)指每秒全表扫描的数量。全表扫描可以是基本表扫描或全索引扫描。由于全表扫描需要耗费大量时间,因此全表扫描的频率过高的话,会影响性能。如果该指标的值比1或2高,应该分析设计的查询以确定是否确实需要全表扫描,以及SQL查询是否可以被优化。次数/秒2.SQL Server中缓冲器管理器(Buffer Manager)对象包含的性能计数器缓冲区高速缓存命
Eclipse Data Tools Platform (DTP) 连接SQL Server 2008
Eclipse Data Tools Platform (DTP) 连接SQL Server 2008[@more@]关键配置1. 下载安装sqljdbc_4.0到C:Program FilesMicrosoft JDBC Driver 4.0 for SQL Server.2. 或者在DTP的New Database Connections时Edit Driver Definition的JAR List中Add 安装路径:到C:Program FilesMicrosoft JDBC Driver 4.0 for SQL Serversqljdbc_4.0enusqljdbc4.jar;或者在环境变量中添加CLASSPATH,值:C:Program FilesMicrosoft JDBC Driver 4.0 for SQL Serversqljdbc_4.0enusqljdbc4.jar此时,可以配置sql server 用户名/密码方式连接。3. 把sqljdbc_auth
The DBA as Detective: Troubleshooting Locking and Blocking
In this article I demonstrated how I go about detecting SQL Server problems in the form of excessive locking, and blocking. While this is a good start for the DBA detective, there is much more ground to cover. I mentioned CPU and I/O in this article only peripherally, as it relates to problem code. In my book, I continue on the path of analyzing performance issues, but extend this topic to explain how to make sure you get notified immediately of performance, and other, issues.After all, if you d
Checklist: SQL Server Performance
http://msdn.microsoft.com/en-us/library/ff647681.aspx[@more@]SQL: Scale Up vs. Scale Out CheckDescription Optimize the application before scaling up or scaling out. Address historical and reporting data. Scale up for most applications. Scale out when scaling up does not suffice or is cost-prohibitive. Schema CheckDescription Devote the appropriate resources to schema design. Separate online analytical processing (OLAP) and online transaction processing (OLTP) wor
连接字串中Database Mirroring的Failover Partner设置的说明
http://blogs.msdn.com/b/apgcdsd/archive/2011/05/13/database-mirroring-failover-partner.aspx[@more@]
分布式死锁的一个例子
http://blogs.msdn.com/b/apgcdsd/archive/2011/12/01/10243233.aspx[@more@]
简介数据库日志文件的增长
http://blogs.msdn.com/b/apgcdsd/archive/2011/12/30/10251946.aspx[@more@]
有关SQL server connection KeepAlive 的FAQ
http://blogs.msdn.com/b/apgcdsd/archive/2011/05/03/sql-server-connection-keepalive-faq.aspx[@more@]有关SQL server connection KeepAlive 的FAQ
为什么生产环境会跑得比测试环境还慢
http://blogs.msdn.com/b/apgcdsd/archive/2011/09/20/10213797.aspx[@more@]
利用Ring Buffer在SQL Server 2008中进行连接故障排除
http://blogs.msdn.com/b/apgcdsd/archive/2011/11/21/ring-buffer-sql-server-2008.aspx[@more@]
SQL server 2008里面通过sys.dm_exec_procedure_stats得到存储过程的执行信息
很多DBA都希望能够得到某个存储过程的执行信息,比如:1) 执行了多少次2) 执行的执行计划如何3) 执行的平均读写如何4) 执行平均需要多少时间等等. 幸运的是SQL server 2008 提供了一个这样的DMV,使得我们比较容易就得到上面的信息。这个DMV是sys.dm_exec_procedure_stats,它输出了下面的信息(部分截图,具体的请参考联机丛书):[@more@]列名 数据类型 说明 database_id int 存储过程所在的数据库 ID。object_id int 存储过程的对象标识号。cached_time datetime 存储过程添加到缓存的时间。cached_time datetime 存储过程添加到缓存的时
Delete大量数据后SQL Server性能下降
今天给大家分享一个”删除大量数据后SQL Server性能下降”的案例。一般而言,数据库数据减少后,应该有助于提高SQL server的整体性能。可是在这个案例中,情况恰恰相反。[@more@]症状=========- 删除大量数据后SQL Server性能下降- 一些存储过程之前运行20分钟左右,现在需要运行2-3个小时。背景信息=========- 大量数据通过DELETE语句而删除- 数据删除后,客户进行了相关的维护工作 : 重建索引和更新统计数据- 性能变慢的存储过程会对一些表做很多的”DELETE”,”INSERT”和”SELECT”操作。调查=========- 相关的表都是堆( heap table)
使用network monitor trace发现应用程序在数据库上执行时的timeout错误
一个奇怪的timeout 问题—--使用network monitor trace发现应用程序在数据库上执行时的timeout错误。问题的描述:客户使用一个应用程序向数据库中装载数据。该程序执行大量的insert和bulk insert的命令。客户的使用过程中,每4次执行就有一次会报timeout的错误。当timeout错误报出的时候,该程序执行了不到1分钟。问题的检查:既然错误信息已经明确的指出了是timeout,那我们首先需要检查客户端应用程序相关的timeout设置。通常跟数据库有关的两个timeout设置分别为:连接timeout和语句timeout。连接timeout是指客户端程序创建数据库连接时
试分析tempdb transaction log变满的情况
1. 有一个极大的事务正在运行,还未提交完成,正在阻塞住其他进程。2. 数据库调用频率极大增加,或者说每秒事务数极大增加,导致sql server来不及释放transaction log.[@more@]1. 有一个极大的事务正在运行,还未提交完成,正在阻塞住其他进程。2. 数据库调用频率极大增加,或者说每秒事务数极大增加,导致sql server来不及释放transaction log.
监控 SQL Server 的运行状况--常用检测语句
Microsoft SQL Server 2005 提供了一些工具来监控数据库。方法之一是动态管理视图。动态管理视图 (DMV) 和动态管理函数 (DMF) 返回的服务器状态信息可用于监控服务器实例的运行状况、诊断问题和优化性能。 常规服务器动态管理对象包括: dm_db_*:数据库和数据库对象 dm_exec_*:执行用户代码和关联的连接 dm_os_*:内存、锁定和时间安排 dm_tran_*:事务和隔离 dm_io_*:网络和磁盘的输入/输出 此部分介绍为监控 SQL Server 运行状况而针对这些动态管理视图和函数运行的一些常用查询。 示例查询 您可以运行以下查询
SQL Server:SQL Server 专家的十个秘密
维护 SQL Server 环境可能是一项非常复杂的任务。您可以通过本文提供的十种方式来降低复杂性并减轻压力。 Paul S. Randal过去数年来,许多公司纷纷精简了其 IT 部门。很多数据库管理员 (DBA) 不得不承担大量的 SQL Server 数据库管理工作。更糟糕的是,经常并没有真正意义上的 DBA,而是随便找个人来充任。而且有时候,DBA 纯粹成了救火队员,在不断涌现的危机之间疲于奔命。这样恶劣的环境是不正常的,也难以持久。没有人愿意处于这种持续压力和干扰之下。摆脱这种境况的一个方法是花点功夫来简化您的 SQL Server 环境,使之更易于理解和
SQL Server Configuration Manager – Cannot connect to WMI provider – Invalid class [0x80041010]
1. Disable UAC;2. Excute mofcomp.exe "C:Program Files (x86)Microsoft SQL Server100Sharedsqlmgmproviderxpsp2up.mof"[@more@]If you run into any compilation error like - An error occurred while processing item 1 defined on lines 4 - 7 in file C:Program Files (x86)Microsoft SQL Server100Sharedsqlmgmproviderxpsp2up.mof:0X80041002 Class, instance, or property 'Name' was not found.Compiler returned error 0x80041002follow the below steps.1. Stop WMI service2. Navigate to the folder “C:Windows
How to prevent blocking in your SQL Server database
http://beyondrelational.com/blogs/community/archive/2011/09/12/how-to-prevent-blocking-in-your-sql-server-database.aspx[@more@]As a SQL Server DBA, usually the largest databases in size and in number of users that I had to manage was an ERP database, such as Microsoft Dynamics AX. And because these types of database typically have a lot of users, database blocking was a major concern. This would manifest itself via calls from users saying that they hit the save button on a screen and it has ju
详解SQL Server的两个存储过程:sp_MSforeachtable/sp_MSforeachdb
详解SQL Server的两个存储过程:sp_MSforeachtable/sp_MSforeachdb[@more@]1.简介: 作为DBA会经常需要检查所有的数据库或用户表,比如:检查所有数据库的容量;看看指定数据库所有用户表的容量,所有表的记录数...,我们一般处理这样的问题都是用游标分别处理处理,比如:在数据库检索效率非常慢时,我们想检查数据库所有的用户表,我们就必须通过写游标来达到要求;如果我们用sp_MSforeachtable就可以非常方便的达到相同的目的:EXEC sp_MSforeachtable @command1="print '?' DBCC CHECKTABLE ('?')" 系统存储过程sp_MSforeachtable