
SQL Server数据库调优
文章平均质量分 76
ulark
这个作者很懒,什么都没留下…
展开
-
数据库优化方法 (一)
我经常碰到有人会问一些数据库优化方面的问题,我觉得这是一最基本技能要求,特别是使用sql server 2005,对于sql server的优化,使用的专职dba或兼职dba们工作更轻松,效率更高了,但是还是有很多新人可能不大了解,我在这儿写一下最基本的一些介绍。 一、首先介绍一下sql server 2005中优化数据时使用到的两个工具 1.第一个工具sql server原创 2009-10-16 17:10:00 · 525 阅读 · 0 评论 -
漫谈数据库索引
作者:KissKnife 来源:博客园 时间:2009-03-30 阅读:1242 次 原文链接 [收藏] 评论表聚集索引引起的评论超时问题 http://kb.cnblogs.com/page/45712/ 从昨天开始,发评论的超时问题给大家带来了麻烦,请大家谅解! 现在问题已经解决,是评论表的聚集索引引起的。 博客园博客评论表有原创 2009-12-07 13:25:00 · 622 阅读 · 0 评论 -
SQL server2005创建计划任务(转)
我们在开发过程中,经常遇到这样问题,就是要求定期进行数据库的检查,如果发现特定数据,那么就要进行某项操作,这个需求呢,可以利用Windows的计划任务,定期执行某一个应用程序,去检索数据;也可以让程序自己控制。其实SQL Server自己也可以创建计划任务,定期进行执行。如果数据库服务器允许,可以考虑采用这种方式。在SQL server2005创建计划任务具体步骤如下:首先要确认 sql serv原创 2010-03-03 09:36:00 · 394 阅读 · 0 评论 -
浅谈数据库的架构优化(读书体会)
年前参加过一次培训,讲数据库架构优化。讲师中英文混杂讲的,个人英文很烂,大概记了三点。 通过负载均衡策略,有效的降低了单台机器的访问负载,降低了宕机的可能性;通过集群方案,解决了数据库宕机带来的单点数据库不能访问的问题;通过读写分离策略更是最大限度了提高了应用中读取(Read)数据的速度和并发量。 最近翻书又看到关于数据库架构优化。书中讲了三点:1.主从复制,读写分离原创 2010-03-06 19:08:00 · 455 阅读 · 0 评论 -
浅谈数据库的架构优化(读书体会)
年前参加过一次培训,讲数据库架构优化。讲师中英文混杂讲的,个人英文很烂,大概记了三点。 通过负载均衡策略,有效的降低了单台机器的访问负载,降低了宕机的可能性;通过集群方案,解决了数据库宕机带来的单点数据库不能访问的问题;通过读写分离策略更是最大限度了提高了应用中读取(Read)数据的速度和并发量。 最近翻书又看到关于数据库架构优化。书中讲了三点:1.主从复制,读写原创 2010-03-10 17:38:00 · 432 阅读 · 0 评论 -
SQL调优
SQL Server 查询查询的时候应该尽量按照复合索引中的顺序来做条件查询;(比如IXC中spInterActiveInstance_GetByIDToStat条件and ProcessState如果在程序中有For或者是Foreach,在存储过程中又有IF Exists,那就要看是否可以在表中加入复合索引了,IF Not Exists可以转换为IF Exists来使用索引; 在查询中尽量少原创 2009-12-29 10:01:00 · 522 阅读 · 0 评论 -
SQL Server中“加锁选项”的功能说明
1 如何锁一个表的某一行 A 连接中执行 SET TRANSACTION ISOLATION LEVEL REPEATABLE READ begin tran select * from tablename with (rowlock) where id=3原创 2010-03-09 16:29:00 · 483 阅读 · 0 评论 -
数据库优化方法 (一)
我经常碰到有人会问一些数据库优化方面的问题,我觉得这是一最基本技能要求,特别是使用sql server 2005,对于sql server的优化,使用的专职dba或兼职dba们工作更轻松,效率更高了,但是还是有很多新人可能不大了解,我在这儿写一下最基本的一些介绍。 一、首先介绍一下sql server 2005中优化数据时使用到的两个工具 1.第一个工具sql server原创 2010-03-09 18:05:00 · 409 阅读 · 0 评论 -
SQLServer中批量插入数据方式的性能对比
昨天下午快下班的时候,无意中听到公司两位同事在探讨批量向数据库插入数据的性能优化问题,顿时来了兴趣,把自己的想法向两位同事说了一下,于是有了本文。公司技术背景:数据库访问类(xxx.DataBase.Dll)调用存储过程实现数据库的访问。技术方案一:压缩时间下程序员写出的第一个版本,仅仅为了完成任务,没有从程序上做任何优化,实现方式是利用数据库访问类调用存储过程,利用循环逐条插入。很明显,这种方式原创 2010-03-15 10:27:00 · 750 阅读 · 0 评论 -
数据库访问的性能问题与瓶颈问题
声明:本文是一篇有争议的文章,甚至有可能是一篇争议非常大的文章,可能争来争去依然无法得到一个统一的意见。场景个别公司的技术决策者要求团队的开发人员在编写数据访问层的时候,禁止在程序中出现任何的SQL语句,禁止使用Entity Library,禁止使用NBear、NHibernate、IBatis、Entity Framework等ORM框架,只允许使用存储过程。试想一下,您的公司是原创 2010-03-15 10:46:00 · 3070 阅读 · 0 评论 -
SQL 扫描参数(SARG)
SQL 扫描参数(SARG)改善SQL语句 很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解。比如: select * from table1 where name=zhangsan and tID > 10000和执行: select * from table1 where tID > 10000 and name=转载 2010-04-02 09:59:00 · 813 阅读 · 0 评论 -
海量数据查询优化
数据库优化查询计划的方法数据库系统是管理信息系统的核心,基于数据库的联机事务处理(OLTP)以及联机分析处理(OLAP)是银行、企业、政府等部门最为重要的计算机应用之一。从大多数系统的应用实例来看,查询操作在各种数据库操作中所占据的比重最大,而查询操作所基于的SELECT语句在SQL语句中又是代价最大的语句。举例来说,如果数据的量积累到一定的程度,比如一个银行的账户数据库表信息积累到上百万甚至上千原创 2010-04-19 10:43:00 · 521 阅读 · 0 评论 -
如何创建高性能的索引
设计好MySql的索引可以让你的数据库飞起来,大大的提高数据库效率。设计MySql索引的时候有一下几点注意:1,创建索引对于查询占主要的应用来说,索引显得尤为重要。很多时候性能问题很简单的就是因为我们忘了添加索引而造成的,或者说没有添加更为有效的索引导致。如果不加索引的话,那么查找任何哪怕只是一条特定的数据都会进行一次全表扫描,如果一张表的数据量很大而符合条件的结果又很少,那么不加索引会引起致原创 2010-04-19 16:24:00 · 516 阅读 · 0 评论 -
数据库优化系列(转)
<br />数据库的优化措施 索引优化<br />索引的作用就类似于书的目录,书的目录会按照章节的顺序排列,会指想某一张的位置。这样如果在一本数百页的书里面查找某个章节位置的时候,我们就可以只扫描书的目录,扫描的范围缩小了n倍,查询的效率自然就提高了。另外在sql server内存够用的情况下索引会被放到内存中,在内存中查找自然又会提高效率;所以我们必须得合理利用索引。<br />1)对什么列建索引<br />数据库默认情况下会对主键建聚集索引,除了这个索引之外还需要在哪些列上建索引呢?这个问题只能具体情况原创 2010-07-02 13:53:00 · 630 阅读 · 0 评论 -
提搞网站访问速度可做哪些优化(转)
<br />一、 服务器优化<br />l Windows系列:64位Win2008r2 + Hpyer-V + 负载均衡 + IIS7.5 64位Win2003 + 虚拟机 + 负载均衡 + IIS6 禁止服务器访问外网。关掉不必要的端口。 去掉每个磁盘的所有权限,只保留administrators组和system完全控制权限。 IIS7.5标识使用ApplicationPoolIdentity,给目录权限用户是:IIS AppPool/站点名 IIS6需要为每个站点建独立的用户,为IIS用户单独设置原创 2010-07-23 10:25:00 · 551 阅读 · 0 评论 -
浅谈管理软件数据库负载均衡及实现 (转)
<br />在我的系统里面一直想加这个功能,但觉得实在不靠谱,不但要考虑稳定性,而且这样的设计会给系统带来多大性能上的提高也是必须先考虑的,如果没有性能的提高多稳定也是没作用的,不过今天还是拿出来给大家看看,也帮忙考虑一下。<br />Winform和Webform在负载均衡处理的大部分时候有些不太一样的重点,Winform偏重点可能是数据库的负载均衡,而Webform重点偏向的是网络负载均衡(注:Webform里数据库的负载均衡也是一样的重要)。<br />系统定位Winform应用,SQL Server原创 2010-06-18 13:18:00 · 628 阅读 · 0 评论 -
SQL SERVER索引优化系列之二:索引性能考虑 (转)
在前面说过了索引能极大的提高数据的检索速度,那为什么不在每一个列上建索引呢?初学者可能会困惑这个问题,而且通常不知道哪些列该建索引,哪些不该建, 甚至于会把like模糊查询的列也作为索引列,其实like是不使用索引的,只有等于,大于,IN等操作符会使用索引。SQLSERVER对于数据的插入,更新和删除,都要更新相应的索引。这无疑会大大增加更新时间。另外,如果某个数据页已满,这时如果要在该页插入数据时,就会造成页分裂产生碎片(后面还会说到),而影响性能。所以仅当查询的性能比更新的性能更重要时才建索引。 考虑建转载 2010-09-29 11:17:00 · 677 阅读 · 0 评论 -
SQL SERVER索引优化系列之三:填充因子 (转)
建SQL SERVER索引的时候有一个选项,即Fillfactor(填充因子)。这个可能很少人会去注意它,但它也是比较重要的。大家可能也都知道有这个东西,但是如何去使用它,可能会比较迷糊。另外,即使你理解了它的原理,也不一定能使用好它,这个还要具体分析索引字段的更新频率等等。记得看书知道有这么个东西,但是都是看的迷迷糊糊的,不知道干吗的,好象设置不设置都一样的。其实,像索引这些东西,当数据达到几十万上百万的时候,它的效果就表现的很明显。填充因子定义:索引中叶级页的数据充满度。它的作用:当系统新建或重建索引时转载 2010-09-29 11:57:00 · 881 阅读 · 0 评论 -
测试SQL Server执行时间和CPU时间
在需要测试sql语句或者存储过程性能的时候可以用得上Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> CHECKPOINT --用于检查当前工作的数据库中被更改过的数据页或日志页,并将这些数据从数据缓冲器中强制写入硬盘 GO DBCC Fre原创 2009-12-02 18:02:00 · 1322 阅读 · 0 评论 -
数据库优化导航_转载
编者按:数据库性能优化和数据库管理系统密切相 关,不同的数据库管理系统在具体操作上有很大不同。继本报连续在2003年第48期、49期上刊登《sybase数据库性能调优》和《oracle服务器 性能调整攻略》,分别讨论了sybase和oracle数据库管理系统以后,本期我们将具体介绍sql server数据库的性能优化方法。 数据库是企业信息的核心,其应用水平的高低直接影响到企业管理水平。选择了一个原创 2009-12-02 18:36:00 · 362 阅读 · 0 评论 -
表事务锁
--查询分析器--窗口1BEGIN TRAN -- 延迟10秒,模拟并发访问. WAITFOR DELAY 000:00:10 SELECT [OrderSerial] ,[ProductID] FROM [TestDB].[dbo].[Orders] WITH(TABLOCK) where OrderSerial = EX201001281原创 2010-01-28 15:02:00 · 493 阅读 · 0 评论 -
50种巧妙优化SQL Server数据库的方法(转)
50种巧妙优化SQL Server数据库的方法作者:不详 出处:不详查询速度慢的原因很多,常见如下几种:没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)。 I/O吞吐量小,形成了瓶颈效应。 没有创建计算列导致查询不优化。 内存不足。 网络速度慢。 查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)。 锁或者死锁(这也是查询慢最常见的问题,是程序设计的原创 2009-10-16 16:56:00 · 447 阅读 · 0 评论 -
数据库优化方法(二)
在上一节中,简单介绍了两个工具,下面使用一个简单的实例来说明如何使用这两个工具,来进行数据库优化。二、启动sql server profiler 1) 启动方法如下图,在SQL Server Management Studio中-->“工具”菜单上选择“sql server profilter” 2) 在“开始”菜单上,选择“所有程序”——>“microsoft sql serv原创 2009-10-16 17:11:00 · 546 阅读 · 0 评论 -
数据库优化方法(三)
接上文,根据上文中的方法我们可以得到我们需要优化的一连串的TSQL语句,下面我们就来看看,如何进行优化。1。在SQL Server Management Studio中-->打开一个新的查询窗口,然后在查询窗口中输入需要优化的TSQL语句。2。在输入完TSQL语句之后,在窗口中点击鼠标右键,会弹出一个菜单,在菜单中选择“在数据库引擎优化顾问中分析查询”。如下图。3。此时会启动“数据库引擎优化原创 2009-10-16 17:12:00 · 532 阅读 · 0 评论 -
SQL Server性能调优入门(图文版)
第一步,在业务高峰期抓取样本数据(2个小时左右)。采用的工具是sqlserver自带的profiler,也叫事件探查器,如下图: 进入后,点击最左面的按钮,建立一个新的跟踪: 登录需要用DBO权限,所以可以用sa登录,也可以用windows集成验证方式(如果当前登录的就是sqlserver的话) 新建跟踪,一共有4个tab页进行配置,首先看第一个。跟踪名称不用更原创 2009-10-16 16:36:00 · 529 阅读 · 0 评论 -
如何进行SQL性能优化?-借助Profile
http://www.cnblogs.com/mingle/archive/2009/11/02/1594826.html原创 2009-11-05 16:45:00 · 467 阅读 · 0 评论 -
SQL Server性能的改进得益于逻辑数据库设计 (转)
◆1、使用索引来更快地遍历表 缺省情况下建立的索引是非群集索引,但有时它并不是最佳的。在非群集索引下,数据在物理上随机存放在数据页上。合理的索引设计要建立在对各种查询的分析和预测上。一般来说:①.有大量重复值、且经常有范围查询(between, > , =, ◆2、IS NULL 与 IS NOT NULL 不能用null作索引,任何包含null值的列都将不会被包原创 2009-11-05 17:07:00 · 514 阅读 · 0 评论 -
如何优化SQL Server数据库查询(转)
1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8、sp_lock,sp_who,活动的用户查看,原创 2009-11-05 13:56:00 · 515 阅读 · 0 评论 -
如何进行SQL性能优化?-使用动态管理视图和函数
http://www.cnblogs.com/mingle/archive/2009/11/03/1594959.html原创 2009-11-05 16:38:00 · 409 阅读 · 0 评论 -
影响SQL server性能的三个关键
1 逻辑数据库和表的设计 数据库的逻辑设计、包括表与表之间的关系是优化关系型数据库性能的核心。一个好的逻辑数据库设计可以为优化数据库和应用程序打下良好的基础。 标准化的数据库逻辑设计包括用多的、有相互关系的窄表来代替很多列的长数据表。下面是一些使用标准化表的一些好处。A:由于表窄,因此可以使排序和建立索引更为迅速B:由于多表,所以多镞的索引成为可能C:更窄更紧凑的索引D:每个表中可以有少一些原创 2009-11-05 14:13:00 · 352 阅读 · 0 评论 -
设计高效sql一般经验谈 (转)
1不用在sql语句使用系统默认的保留关键字2尽量用exists 和 not exists 代替 in 和 not in 这条在sql2005之后,在索引一样,统计信息一样的情况下,exists ,in效果是一样的。 以AdventureWorks数据库为例,查询在HumanResources.EmployeeAddress有地址的Employee信息,原创 2009-11-05 17:03:00 · 589 阅读 · 1 评论 -
《软件开发性能优化系列》之阻塞
《软件开发性能优化系列》之阻塞 阻塞原因 在默认事务隔离情况下,数据库事务越长,一方面独占锁被持有的时间越长,写操作阻塞读操作的机会就越多;另一方面,在默认的读提交隔离模式下,读操作使用共享锁与独占锁不兼容,读操作也会阻塞写操作。 阻塞也是死锁产生的基本条件,改善了阻塞就能有效减少死锁。 在软件开发后期,在对大数据量的集成测试工程中,通原创 2010-01-16 11:24:00 · 553 阅读 · 0 评论 -
《软件开发性能优化系列》之主键、索引设计
无主键、索引或者没有查询索引无效,是产品查询慢的最常见问题,以下是数据库表主键和索引设计的主要原则1、主键主键ID,主键既是约束也是索引,同时也用于对象缓存的键值。2、索引 *组合或者引用关系的子表(数据量较大的时候),需要在关联主表的列上建立非聚集索引(如订单明细表中的产品ID字段、订单明细表中关联的订单ID字段) *索引键的大小不能超过9原创 2010-01-16 11:28:00 · 400 阅读 · 0 评论 -
《软件开发性能优化系列》之表设计
《软件开发性能优化系列》之表设计 树表设计: 树状表都是使用ID和IDParent两个字段来表示树关系。对树进行查找只能使用自关联方式,不光写法麻烦而且记录多的时候查询性能会非常差。建议在设计树表的时候可以考虑加入treePath字段,记载到该节点记录需要经历的树路径。虽然会增加Insert和Update的成本。但是对查询树关系非常有帮助。可以避免大部分的自关联查询。原创 2010-01-16 11:32:00 · 545 阅读 · 0 评论 -
索引的使用说明
索引的使用说明题外话: 昨天比较郁闷,维护一客户的数据库系统时候,发现系统处理数据就出现假死。开始因为是软件问题,拷得乱忙一下午还没有拷定,后来一直弄到晚上7点,突然想起索引问题。后来就使用了一命令:dbcc dbreindex(TableName,,80)即可实现。比较郁闷和晕,自己犯这样的错误。 这错误,正好是我想写这帖的原因,希望能为大家解原创 2010-01-22 17:21:00 · 467 阅读 · 0 评论 -
利用typeperf工具收集SQL Server性能数据
一.利用TypePerf.exe命令行工具把Windows操作系统的性能计数器数据记录到数据库中 可以在作业中建立以下脚本1.启用xp_cmdshell--默认情况下,sql server2005安装完后,xp_cmdshell是禁用的(可能是安全考虑),如果要使用它,可按以下步骤 -- 允许配置高级选项EXEC sp_configure show advanced原创 2010-01-21 17:09:00 · 447 阅读 · 0 评论 -
MS SQL Server查询优化方法
查询速度慢的原因很多,常见如下几种 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8、sp_lock,sp_who,活动原创 2009-12-02 12:58:00 · 370 阅读 · 0 评论 -
会引起全表扫描的几种SQL
1、模糊查询效率很低: 原因:like本身效率就比较低,应该尽量避免查询条件使用like;对于like ‘%...%’(全模糊)这样的条件,是无法使用索引的,全表扫描自然效率很低;另外,由于匹配算法的关系,模糊查询的字段长度越大,模糊查询效率越低。 解决办法:首先尽量避免模糊查询,如果因为业务需要一定要使用模糊查询,则至少保证不要使用全模糊查询,对于右模糊查询,即like ‘…%’,是原创 2009-12-02 12:58:00 · 819 阅读 · 0 评论 -
SQL SERVER索引优化系列之一:工作原理&聚簇索引|非聚簇索引 (转)
我们来简单地看看SQL SERVER索引是如何工作的,关于索引的一些概念就不说了。聚簇索引:(图A)我们来看图A,聚簇索引的结构图。数据页就是数据库里实际存储数据的地方,可以看到是按页1页1页存的。假设那个列是”LastName”。因为是聚集索引,所以它是按照顺序排下来的。可以看到,索引是一棵树,首先先看一下这棵树是怎么形成的。先看Page100和Page110的最上面,由它们形成了Page141,Page141的第一条数据是Page100的第一条数据,Page141的最后一条数据是Page110的第一条数转载 2010-09-29 10:48:00 · 882 阅读 · 0 评论