数据库性能
文章平均质量分 78
山海996
10年DBA,6年云平台全站架构师
https://www.aliyun.com/daily-act/ecs/activity_selection?userCode=tv7us9g5
展开
-
nchar,char,varchar 与nvarchar区别
char类型: 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节,CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义 char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间。因为是固定长度,所以速度效率高。 Varchar类型:Varchar 的类型不以空格填满,比如varchar(100),但它的值只是"qian",则转载 2012-10-30 17:51:17 · 936 阅读 · 0 评论 -
SQL事件探查器( Profiler)数据列的基本说明
SQL Profiler的Trace分析一般情况下:CPU:事件所使用的CPU时间总计(以毫秒为单位)READ:服务器代表事件执行的逻辑磁盘读取数WRITE:服务器代表事件执行的物理磁盘写入数DURATION:事件花费的时间总计(以毫秒为单位)-------------------------------转:SQL 事件探查器数据列SQL 事件探查器使您得以转载 2012-03-30 11:30:08 · 7192 阅读 · 0 评论 -
sql跟踪日志trc导入数据库的2种方法
转载自博客园.第一种。使用函数导入到某个库中A. 使用 fn_trace_gettable 从跟踪文件导入行以下示例在 SELECT...INTO 语句的 FROM 子句内部调用 fn_trace_gettable。USE AdventureWorks;GOSELECT * INTO temp_trcFROM fn_trace_gettable('c转载 2012-03-30 11:35:08 · 1752 阅读 · 0 评论 -
SQL 优化--索引
Sys.dm_exec_requests是检查SQL Server性能瓶颈的有力工具update statistics t_goods with fullscan---更新表的统计信息聚簇索引的索引叶子就是数据本身。非聚簇索引的索引叶子节点包含的是指向数据的书签(即数据行号或聚集索引的key) 索引优化原则:主要是减少逻辑读的次数。逻辑读中包含从内存数据缓存中访问的页数转载 2012-03-19 13:13:26 · 823 阅读 · 0 评论 -
SQL Server 2008 参数化查询 --可重用的缓存计划
我将讨论如果一个查询可以被参数化,那么SQL Server优化器怎样尝试将其参数化,以及你可以怎样建立你自己的参数化查询.1.什么是参数化查询?一个简单理解参数化查询的方式是把它看做只是一个T-SQL查询,它接受控制这个查询返回什么的参数.通过使用不同的参数,一个参数化查询返回不同的结果.要获得一个参数化查询,你需要以一种特定的方式来编写你的代码,或它需要满足一组特定的标准.有两种不同转载 2012-04-11 15:14:28 · 2605 阅读 · 0 评论 -
写有效率的SQL查询---转载学习
--http://www.cnblogs.com/cn_wpf/archive/2007/08/03/841911.html#2156251写有效率的SQL查询(I)大型系统的生产环境,一般情况下,我们评价一条查询是否有效率,更多的是关注逻辑IO(至于为什么,回头补一篇)。我们常说,“要建彪悍的索引”、“要写高效的SQL”,其实最终目的就是在相同结果集情况下,尽可能减少逻辑IO。1转载 2012-04-14 16:29:32 · 3279 阅读 · 0 评论 -
Sql Server2008 中的活动监视器、对象资源管理器详细信息、搜索、查询编辑器之IntelliSense (转)
Management Studio首次出现在MSSQL2005中,到MSSQL2008中已经成为了一个更成功的产品。其中在SSMS2008中最重要的特性如下:1.活动监视器 2.对象资源管理器详细信息 3.搜索 4.查询编辑器之IntelliSense 这些只是部分关键功能,其他的功能你可以亲自使用SSMS来发现,祝各位发现的隐藏技巧越来越多。。一。活动监视器转载 2012-05-29 10:09:43 · 29593 阅读 · 0 评论 -
SQL Server中的执行计划引擎入门
简介 当查询优化器(Query Optimizer)将T-SQL语句解析后并从执行计划中选择最低消耗的执行计划后,具体的执行就会交由执行引擎(Execution Engine)来进行执行。本文旨在分类讲述执行计划中每一种操作的相关信息。 数据访问操作 首先最基本的操作就是访问数据。这既可以通过直接访问表,也可以通过访问索引来进行。表内数据的组织方式分为堆(Heap)和B转载 2012-06-13 17:29:45 · 760 阅读 · 0 评论 -
SQL Server 2008 压缩
2011-01-05 09:47 34人阅读 评论(0)收藏 举报执行SQL查询时,主要的几个瓶颈在于:CPU运算速度、内存缓存区大小、磁盘IO速度。而对于大数据量数据的查询,其瓶颈则一般集中于磁盘IO,以及内存缓存。那么为了提高SQL查询的效率,一方面我们需要考虑尽量减少查询设计的数据条目数——建立索引,设立分区;另一方面,我们也可以考虑切实减少数据表物理大小,从而减少I转载 2012-06-14 11:37:31 · 790 阅读 · 0 评论 -
一些有用的信息
如何查看客户端的IP地址,机器名,MAC地址,登陆名等信息select s.session_id,s.login_time,s.host_name,p.loginame,s.program_name,c.client_net_address,c.client_tcp_port,p.net_address as client_mac_address, c.local_net_address,原创 2011-03-10 14:27:00 · 1146 阅读 · 0 评论 -
揭秘SQL Server 2000中的Bookmark Lookup--书签查找
Bookmark Lookup是什么呢?在SQL Server2000中的联机丛书中是这样说的:“Bookmark Lookup逻辑运算符和物理运算符使用书签(行 ID 或聚集键)在表或聚集索引内查找相应的行。Argument列包含书签标志,用于在表或聚集索引内查找行。Argument 列还包含要查找的行所在的表或聚集索引的名称。如果 WITH PREFETCH 子句出现在Argument转载 2012-03-30 17:54:18 · 1361 阅读 · 1 评论 -
SQL查询优化:详解SQL Server非聚集索引
只看楼主倒序阅读使用道具0 发表于: 2011-12-29在SQL SERVER中,非聚集索引其实可以看作是一个含有聚集索引的表.但相比实际的表而言.非聚集索引中所存储的表的列数要窄很多,因为非聚集索引仅仅包含原表中非聚集索引的列和指向实际物理表的指针。 并且,对于非聚集索引表来说,其中所存放的列是按照聚集索引来进行存放的.所以查找速度要快了很多。但是对于性能的榨取来转载 2012-03-26 17:55:12 · 963 阅读 · 0 评论 -
SQL Server数据库表锁定原理以及如何解除表的锁定
---有趣的分享,收藏一下!1. 数据库表锁定原理1.1 目前的C/S,B/S结构都是多用户访问数据库,每个时间点会有成千上万个user来访问DB,其中也会同时存取同一份数据,会造成数据的不一致性或者读脏数据. 1.2 事务的ACID原则 1.3 锁是关系数据库很重要的一部分, 数据库必须有锁的机制来确保数据的完整和一致性.1.3.1 SQL Server中转载 2012-03-26 17:13:06 · 632 阅读 · 0 评论 -
SQL Server 索引中include的魅力(具有包含性列的索引)
开文之前首先要讲讲几个概念 【覆盖查询】 当索引包含查询引用的所有列时,它通常称为“覆盖查询”。 【索引覆盖】 如果返回的数据列就包含于索引的键值中,或者包含于索引的键值+聚集索引的键值中,那么就不会发生Bookup Lookup,因为找到索引项,就已经找到所需的数据了,没有必要再到数据行去找了。这种情况,叫做索引覆盖; 【复合索引】转载 2012-03-26 16:15:02 · 845 阅读 · 0 评论 -
SQL 索引调优
一:前言Index对数据库性能有着举足轻重的作用。Index设计的优劣直接影响到DB执行的效率。所以在做DB Tuning时,一部分会从Index着手处理,SQLServer也提供了很好的工具Database Engine Tuning Advisor,会给出一些建Index和优化方面的建议。 二:Index概述这方面在各个博客论坛上面已经讲的比较多了,在此大致总结一下:1转载 2012-03-26 17:41:58 · 838 阅读 · 1 评论 -
释放SQL Server占用的内存
由于Sql Server对于系统内存的管理策略是有多少占多少,除非系统内存不够用了(大约到剩余内存为4M左右),Sql Server才会释放一点点内存。所以很多时候,我们会发现运行Sql Server的系统内存往往居高不下。这些内存一般都是Sql Server运行时候用作缓存的,例如你运行一个select语句,那么Sql Server会将相关的数据页(Sql Server操作的数据都是以页为单转载 2012-03-29 14:22:24 · 14444 阅读 · 1 评论 -
执行缓存以优化SQL Server的内存占用
在论坛上常见有朋友抱怨,说SQL Server太吃内存了。这里笔者根据经验简单介绍一下内存相关的调优知识。首先说明一下SQL Server内存占用由哪几部分组成。SQL Server占用的内存主要由三部分组成:数据缓存(Data Buffer)、执行缓存(Procedure Cache)、以及SQL Server引擎程序。SQL Server引擎程序所占用缓存一般相对变化不大,则我们进行内存调转载 2012-03-29 14:31:29 · 1111 阅读 · 0 评论 -
使用SQL语句实现SQL Profiler的功能
SQL Profiler是个好东西。极大的方便了我们查看SQL语句的执行情况,也能帮助我们了解SQL的很多内部状态。那么除了运行SQL Profiler就没有其他方法可以实现了吗?当然不会,这里提供一个简单的示例以示说明:1. 使用系统存储过程sp_trace_create建立一个Trace,这个SP可以在on-line help上找到DECLARE @TraceIdOut int, @O转载 2012-03-29 17:44:09 · 925 阅读 · 0 评论 -
与 SQL Server Profiler 有关的几个存储过程和函数
---收藏,太有用了这个月新系统正式上线,半个月来出现很多问题,麻烦!真是麻烦!麻烦不断啊!最要命的是公司的DBA因为需要参与新项目的设计居然把所有问题交我解决,自己一走了知。我本就是一懒人,什么事情都要重复做可不行,是什么原因出现的错误我分析不出来,可是我能把所有的语句都跟踪记录下来。 SQL Server Profiler 没错!就是它了,这是这半个月来我每天都要手点一下选择一个模板出来运转载 2012-03-29 17:54:54 · 1134 阅读 · 0 评论 -
第二章:分析基本查询的图形执行计划
本章的目的是让您能够解释简单的图形执行计划,换言之,简单的SELECT、UPDATE、INSERT或DELETE查询的执行计划是指那些少数连接或没有高级功能或提示的查询。为此,我们将介绍下列图形计划中的主题:1.运算符 2.连接 3.WHERE从句 4.聚合 5.INSERT、UPDATE、DELETE执行计划 图形执行计划语言 从某种程度上,学习图形执行计划与学习新转载 2012-06-15 10:55:10 · 805 阅读 · 0 评论 -
续第二章:分析基本查询的图形执行计划--表连接
到目前为止,我们介绍了单张表的例子,下面将引入一些新的元素:连接。分析以下查询: 1: SELECT e . [Title], 2: a. [City] , 3: c. [LastName] + ', ' + c. [FirstName] AS EmployeeName 4: FROM [HumanR转载 2012-06-15 10:55:46 · 682 阅读 · 0 评论 -
看懂SqlServer查询计划
转载自:http://www.cnblogs.com/fish-li/archive/2011/06/06/2073626.html阅读目录开始Sql Server 查找记录的方法Sql Server Join 方式更具体执行过程索引统计信息:查询计划的选择依据优化视图查询推荐阅读-MSDN文章对于SqlServer的优化来说,可能优化查询是很常见的事情。关于数据库转载 2012-06-27 17:56:38 · 1179 阅读 · 0 评论 -
SQL Join的一些总结
1.1.1 摘要Join是关系型数据库系统的重要操作之一,SQL Server中包含的常用Join:内联接、外联接和交叉联接等。如果我们想在两个或以上的表获取其中从一个表中的行与另一个表中的行匹配的数据,这时我们应该考虑使用Join,因为Join具体联接表或函数进行查询的特性本文将通过具体例子介绍SQL中的各种常用Join的特性和使用场合:目录Inner joinOuter转载 2012-06-27 18:14:26 · 806 阅读 · 0 评论 -
数据库系统异常排查之DMV
数据库系统异常是DBA经常要面临的情景,一名有一定从业经验的DBA,都会有自己一套故障排查的方法和步骤,此文为为大家介绍一下通过系统性能视图(SQLServer05以上版本)来排查系统异常的基本方法,希望能对大家有所帮助。 这里分两部分来介绍:一. 从数据库连接情况来判断异常:1. 首先我们来看一下目前数据库系统所有请求情况:--request infosele转载 2012-07-17 10:58:03 · 1118 阅读 · 0 评论 -
如何诊断修正17883,17884,17887,17888错误
转自:http://www.cnblogs.com/Amaranthus/archive/2012/07/18/2597562.html----------------------- 如何诊断修正17883,17884,17887,17888错误 英文白皮书目录前言SQL Server调度调度器工作线程请求退让(Yielding)SwichtPree转载 2012-07-19 17:04:20 · 4340 阅读 · 0 评论 -
揭开隐藏数据的面纱,优化应用程序性能
转自:http://msdn.microsoft.com/zh-cn/magazine/cc135978.aspx#S5---------------------- 目录服务器等待的原因读和写 数据库缺失索引 高开销的缺失索引 未使用的索引 高开销的已使用索引常用索引 逻辑上零碎的索引 高 I/O 开销的查询高 CPU 开销的查询转载 2012-08-17 15:33:47 · 2198 阅读 · 0 评论 -
[翻译]在简单的恢复模式下,为什么日志会持续增长
原文地址:http://sqlblog.com/blogs/linchi_shea/archive/2009/04/12/a-race-condition-in-the-simple-recovery-mode-why-is-my-log-autogrowing.aspx 说明:这篇BLOG的原文标题为:A Race Condition in the Simple Recover转载 2012-09-12 17:04:24 · 2272 阅读 · 0 评论 -
SQL Server 2008性能监视
--------http://www.cnblogs.com/xupengnannan20070617/archive/2012/09/01/2665851.html性能监视 SQL Server 2008监视本质上可以分为5个区域:系统资源;SQL Server自身;数据库;数据库应用程序和网络。 监视和优化SQL 的策略是相当简单的,分为以下几步:创建一个性能基准;转载 2012-09-17 15:03:21 · 6486 阅读 · 0 评论 -
SQL Transcation的一些总结
1.1.1 摘要 相信大家对于SQL Transcation再熟悉不过,它确保了数据库的数据一致性和安全性,尤其在对数据执行增删时,如果发生异常和错误它就会触发事务回滚,从而确保了我们数据的一致性和安全性,下面我们将通过分四部分介绍事件(Transcation)。 1.1.2 正文 首先让我们通过一个具体的例子介绍Transcation的使用,假如我们的数据库中转载 2012-06-27 18:12:31 · 789 阅读 · 0 评论 -
Deadlock的一些总结(死锁分析及处理)
1.1.1 摘要 在系统设计过程中,系统的稳定性、响应速度和读写速度至关重要,就像12306.cn那样,当然我们可以通过提高系统并发能力来提高系统性能总体性能,但在并发作用下也会出现一些问题,例如死锁。 今天的博文将着重介绍死锁的原因和解决方法。1.1.2 正文 定义: 死锁是由于并发进程只能按互斥方式访问临界资源等多种因素引起的,并且是一转载 2012-06-27 17:35:01 · 12299 阅读 · 0 评论 -
第一章:执行计划基本知识--范例入门
执行计划对于编写高效的T-SQL代码提供了帮助,对于诊断T-SQL问题或监控及系统都有积极的作用。如何使用它们来为你提供需要的信息,就需要充分地了解执行计划内部包含的信息以及解释其中的意思。学习执行计划的最好的途径就是通过实际的例子,下面开始吧!请注意:在介绍复杂的执行计划时,碰到的计划可能与先前书本中描述的计划存在较大差异时,这极可能是由于使用的SQL Server版本或SP补丁包不同。对于转载 2012-06-15 10:53:59 · 691 阅读 · 0 评论 -
第一章:执行计划基本知识--文本执行计划和XML执行计划
图形执行计划很有用,其在于易读。不过,关于运算符的过多数据信息并不立即可以看到,在“工具提示”窗口中显示的信息也有所限制,“属性”窗口则显示完整的数据信息。要是有一种方法一次可以查看所有的数据信息该有多好呀!在处理复杂计划或大批量语句的查询时,显然不能够查找特定的信息,如表扫描或开销较大,不过不用担心,有两种方法可以使用:文本执行计划和XML执行计划。1.1.7.1文本估计计划要启用文转载 2012-06-15 10:54:32 · 1516 阅读 · 0 评论 -
第三章:分析基本查询的文本和XML执行计划
第二章介绍的分析图形执行计划的方法也适用于对文本和XML执行计划的分析,不同的是文本和XML执行计划没有图标来表示,但仍包括相同的运算符。在先前的版本中,仅提供了基于文本的执行计划,许多人发现不易阅读,尤其对于复杂的计划来说;最终微软添加了“图形执行计划”,图形执行计划相对于文本执行计划来说更易于阅读和分析。要取代文本执行计划,微软在SQL Server 2005中引入了XML执行计划。与转载 2012-06-15 10:56:30 · 664 阅读 · 0 评论 -
有关SQL Server分布统计的问题
最近常被一些人问到关于SQL Server中统计的问题,这些问题是:是否需要关注数据库中统计的多少? 统计对象使用多个空间 就执行SQL语句来说,查询优化器使用索引或列的分布统计信息来选择最佳的策略或计划;如果缺少统计信息或统计信息过期,性能会受到影响。在回答这些问题前,需要介绍一些关于分布统计的背景知识:什么是分布统计、其重要性、如何创建、更新、显示或查询。 分布统计的定义转载 2012-06-15 10:57:45 · 1045 阅读 · 0 评论 -
第一章:执行计划基本知识
收藏学习:http://www.cnblogs.com/bigholy/archive/2011/12/02/2272448.html 简单地说,执行计划是查询优化器以最有效的方式来完成用户提交的T-SQL查询请求的结果。通过执行计划,可以让你了解一条查询是如何执行,因此,对于众多DBA来说,解决性能较慢的查询主要目标就是了解查询计划的工作原理,而不是猜测特定的查询转载 2012-06-15 10:53:18 · 987 阅读 · 0 评论 -
图形执行计划图标
http://msdn.microsoft.com/zh-cn/library/ms175913%28v=sql.105%29.aspx------SQL Server Management Studio 图形执行计划中显示的下列图标表示的是 SQL Server 用于执行语句的运算符。有关详细信息,请参阅逻辑运算符和物理运算符引用。以并行方式执行的运算符将与运算符上方的以下并行处转载 2012-06-15 15:33:25 · 1926 阅读 · 0 评论 -
SQL Server事务的隔离级别
事务的隔离级别SQLServer通过在锁资源上使用不同类型的锁来隔离事务。为了开发安全的事务,定义事务内容以及应在何种情况下回滚至关重要,定义如何以及在多长时间内在事务中保持锁定也同等重要。这由隔离级别决定。应用不同的隔离级别,SQL Server赋予开发者一种能力,让他们为每一个单独事务定义与其他事务的隔离程度。事务隔离级别的定义如下:是否在读数据的时候使用锁读锁持续多长时间转载 2012-06-18 10:23:51 · 930 阅读 · 0 评论 -
SQL server 2008里面通过sys.dm_exec_procedure_stats得到存储过程的执行信息
----http://www.cnblogs.com/zhangxiaohuid/archive/2011/12/29/2306173.html很多DBA都希望能够得到某个存储过程的执行信息,比如: 1) 执行了多少次2) 执行的执行计划如何3) 执行的平均读写如何4) 执行平均需要多少时间 等等. 幸运的是S转载 2012-06-26 11:54:11 · 1956 阅读 · 0 评论 -
了解SQL Server锁争用:NOLOCK 和 ROWLOCK 的使用
锁争用的描述 那些不仅仅使用行级锁的数据库使用一种称为混和锁(lock escalation)的技术来获取较高的性能。除非很明确知道是针对整个数据表,否则这些数据库的做法是开始使用行级锁, 然后随着修改的数据增多,开始使用大范围的锁机制。不幸的是,这种混和锁的方法会产生和放大新的问题:死锁。如果两个用户以相反的顺序修改位于不同表的记录,而这两条记录虽然逻辑上不相关, 但是物理上是相邻的转载 2012-03-23 13:48:16 · 2598 阅读 · 0 评论 -
Windows常见性能计数器
转载--学习:http://blog.csdn.net/oobibigo/archive/2008/11/20/3341591.aspx性能计数器(counter)是描述服务器或操作系统性能的一些数据指标。计数器在性能测试中发挥着“监控和分析”的关键作用,尤其是在分析系统的可扩展性、进行性能瓶颈的定位时,对计数器的取值的分析非常关键。但必须说明的是,单一的性能计数器只能体现系统转载 2012-03-02 11:17:46 · 556 阅读 · 0 评论