收集SQL Server统计信息
更新时间:2016年11月25日 16:44 点击:2336
问:我需要在运行SQL Server的机器上定期收集诸如每秒处理事务数(tps)之类的统计信息。为此,我大量使用了Performance Monitor(性能监视器),但却不能得到DBA所需的SQL Server性能指标。请问是否存在能够轻松收集这类统计信息的实用工具?
答:针对SQL Server的Performance Monitor计数器之一便能收集tps,因此,使用Performance Monitor是捕获这项指标最便捷的方式。您可以通过Microsoft Windows® NT Server 4.0 Resource Kit或Microsoft Windows 2000 Server Resource Kit以服务的形式安装Performance Monitor。此外,我建议您阅读Steve Adrien DeLuca等人所著的《Microsoft SQL Server 7.0 Performance Tuning Technical Reference》以学习关于测试有用SQL Server性能数据的内容。
——Microsoft项目经理,Richard Waymire
在连接字符串里加上服务器和数据库驱动程序就可以了
Example:
dim conn
set conn = Server.CreateObject("ADODB.Connection")
conn.ConnectionString = "driver={SQL Server};"server=yourserver;uid=sa;pwd=pwd;database=pubs"
conn.open
Set cmd= Server.CreateObject("ADODB.Command")
Set cmd.ActiveConnection = conn
任何基于锁的并发系统的一个不可避免的特点是在某些条件下系统可能阻塞。当一个连接占有一个锁而另一个连接试图改变锁的状态时,第二个连接要么等待第一个连接释放锁,要么因此而被阻塞。
为了获得最好的可扩展性,性能和并发能力,在设计应用程序和查询语句时,应该注意尽量缩短事务的长度, 并且减少占有锁的时间。大多数并发问题往往出现在应用程序和数据库的设计阶段,因此,设计阶段如果充分考虑这个因素至关重要。
否则,应用程序就会存在潜在的潜能缺陷, 而且一般要到应用程序扩展性测试时才被发现。
为了最大程度优化SQL Server的性能, 首先您必须确定几个方面。当这几个方面得到优化时,可以最大程度的提高整个系统性能。然后您可以针对这几个方面进行分析。否则,您可能事倍功半。
经验证明,SQL Server的性能提高主要取决于逻辑数据库设计,索引设计和查询设计。
反之,最大的性能问题也往往源于这几个方面的设计缺陷。
如果数据库性能是一个关注焦点,您应该首先着眼这几个方面,因为在此的很小的投资可以带来很大的利益。
而其它系统级的性能问题, 例如内存、高速缓存、 硬件等, 的确值得研究。经验证明系统在这些方面容量越大,性能越高。
SQL Server对现有硬件资源采用自动方式管理,从而减少系统级的手工调整。
SQL Server事务日志可能会被填满,这会阻止之后的数据库操作,包括UPDATE, DELETE, INSERT 和CHECKPOINT。
事务日志填满会导致1105错误:
Can't allocate space for object syslogs in database dbname because
the logsegment is full。
If you ran out of space in syslogs, dump
the transaction log。
Otherwise use ALTER DATABASE or
sp_extendsegment to increase the size of the segment。
这种现象可能出现于任何一个数据库中,包括Master和TempDB。一些难以预见的因素可能消耗日志空间。
例如:
一个大型事务, 尤其像批量数据更新、插入或删除。
一个未提交的事务。
检查点处理程序截除时所需的带宽过大。
截除时超过阈值
上述各种条件互相作用的结果。
用于发布的标记事务没有被日志读取程序读走
答:针对SQL Server的Performance Monitor计数器之一便能收集tps,因此,使用Performance Monitor是捕获这项指标最便捷的方式。您可以通过Microsoft Windows® NT Server 4.0 Resource Kit或Microsoft Windows 2000 Server Resource Kit以服务的形式安装Performance Monitor。此外,我建议您阅读Steve Adrien DeLuca等人所著的《Microsoft SQL Server 7.0 Performance Tuning Technical Reference》以学习关于测试有用SQL Server性能数据的内容。
——Microsoft项目经理,Richard Waymire
在连接字符串里加上服务器和数据库驱动程序就可以了
Example:
dim conn
set conn = Server.CreateObject("ADODB.Connection")
conn.ConnectionString = "driver={SQL Server};"server=yourserver;uid=sa;pwd=pwd;database=pubs"
conn.open
Set cmd= Server.CreateObject("ADODB.Command")
Set cmd.ActiveConnection = conn
任何基于锁的并发系统的一个不可避免的特点是在某些条件下系统可能阻塞。当一个连接占有一个锁而另一个连接试图改变锁的状态时,第二个连接要么等待第一个连接释放锁,要么因此而被阻塞。
为了获得最好的可扩展性,性能和并发能力,在设计应用程序和查询语句时,应该注意尽量缩短事务的长度, 并且减少占有锁的时间。大多数并发问题往往出现在应用程序和数据库的设计阶段,因此,设计阶段如果充分考虑这个因素至关重要。
否则,应用程序就会存在潜在的潜能缺陷, 而且一般要到应用程序扩展性测试时才被发现。
为了最大程度优化SQL Server的性能, 首先您必须确定几个方面。当这几个方面得到优化时,可以最大程度的提高整个系统性能。然后您可以针对这几个方面进行分析。否则,您可能事倍功半。
经验证明,SQL Server的性能提高主要取决于逻辑数据库设计,索引设计和查询设计。
反之,最大的性能问题也往往源于这几个方面的设计缺陷。
如果数据库性能是一个关注焦点,您应该首先着眼这几个方面,因为在此的很小的投资可以带来很大的利益。
而其它系统级的性能问题, 例如内存、高速缓存、 硬件等, 的确值得研究。经验证明系统在这些方面容量越大,性能越高。
SQL Server对现有硬件资源采用自动方式管理,从而减少系统级的手工调整。
SQL Server事务日志可能会被填满,这会阻止之后的数据库操作,包括UPDATE, DELETE, INSERT 和CHECKPOINT。
事务日志填满会导致1105错误:
Can't allocate space for object syslogs in database dbname because
the logsegment is full。
If you ran out of space in syslogs, dump
the transaction log。
Otherwise use ALTER DATABASE or
sp_extendsegment to increase the size of the segment。
这种现象可能出现于任何一个数据库中,包括Master和TempDB。一些难以预见的因素可能消耗日志空间。
例如:
一个大型事务, 尤其像批量数据更新、插入或删除。
一个未提交的事务。
检查点处理程序截除时所需的带宽过大。
截除时超过阈值
上述各种条件互相作用的结果。
用于发布的标记事务没有被日志读取程序读走
下一篇: 数据库查询结果的动态排序(1)
相关文章
- 这篇文章主要介绍了Vue基于localStorage存储信息代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-16
SQL Server中row_number函数的常见用法示例详解
这篇文章主要给大家介绍了关于SQL Server中row_number函数的常见用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-08- 本文详细讲解了SQLServer中执行动态SQL的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2022-05-19
- 这篇文章主要介绍了C#查询SqlServer数据库并返回单个值的方法,涉及C#操作SQLServer数据库查询的相关技巧,需要的朋友可以参考下...2020-06-25
SQL Server免费版的安装以及使用SQL Server Management Studio(SSMS)连接数据库的图文方法
这篇文章主要介绍了SQL Server免费版的安装以及使用SQL Server Management Studio(SSMS)连接数据库的图文方法,需要的朋友可以参考下...2020-07-11C#实现Excel表数据导入Sql Server数据库中的方法
这篇文章主要介绍了C#实现Excel表数据导入Sql Server数据库中的方法,结合实例形式详细分析了C#读取Excel表数据及导入Sql Server数据库的具体操作步骤与相关操作技巧,需要的朋友可以参考下...2020-06-25- 这篇文章主要介绍了C#统计字符串中数字个数的方法,涉及C#遍历字符串并判断数字的技巧,需要的朋友可以参考下...2020-06-25
C#利用System.Threading.Thread.Sleep即时输出信息的详解
本篇文章是对C#利用System.Threading.Thread.Sleep即时输出信息进行了详细的分析介绍,需要的朋友参考下...2020-06-25- Redis 是一个开源、高性能的Key-Value数据库,被广泛应用在服务器各种场景中。本文介绍几个查看Redis内存信息的命令,包括常用的info memory、info keyspace、bigkeys等。...2021-01-15
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 'WIN-8IVSNAQS8T7\Administrator' 的信息,错误代码 0x534。 [SQLSTATE 42000] (ConnIsLoginSysAdmin)...2021-07-15- 这篇文章主要介绍了C# 获取硬盘号,CPU信息,加密解密技术的步骤,帮助大家更好的理解和学习c#,感兴趣的朋友可以了解下...2021-01-16
- 这篇文章主要介绍了C#连接到sql server2008数据库的实例代码,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了C#编程实现连接SQL SERVER数据库的方法,以实例形式较为详细的分析了C#连接SQL SERVER数据库的相关步骤与具体实现技巧,需要的朋友可以参考下...2020-06-25
- 这篇文章主要给大家介绍了关于SQL SERVER迁移之更换磁盘文件夹的完整步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-08
- 这篇文章主要介绍了CentOS8安装SQLServer2019的步骤,本文通过命令实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
- 本文将基于三大范式原则,结合具体的实例做简要分析,对SqlServer 数据库 三大 范式相关知识感兴趣的朋友一起看看吧...2020-07-11
- 这篇文章主要介绍了解决Feign获取异常信息的处理方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-08-27
- 这篇文章主要介绍了使用BindingResult 自定义错误信息,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-23
- 这篇文章主要给大家介绍了关于sql server日志处理不当造成的隐患的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用sql server具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-07-11
apache http server遇到了一个问题,需要关闭
重装系统后,重新安装了xamp,最近启动的时候经常报apache http server遇到了一个问题,需要关闭,显示如图: 解决方法:查看szModName报错的模块,然后把PHP安装目录下对应的模块...2016-01-28