自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

微软亚太区数据库技术支持组 官方博客

MSDN< http://blogs.msdn.com/b/apgcdsd/ > IT168 < http://space.itpub.net/25175503/>同步更新

  • 博客(35)
  • 收藏
  • 关注

原创 隐藏SSMS和Visual Studio上广播的SQL Server服务器名

一、问题描述在某些情况下,我们可能不希望将重要的SQL Server的服务器名在一些SQL的工具中广播出来 (如图1)。本篇我们将介绍如何从SSMS(SQL Server Management)和Visual Studio中隐藏SQL Server的服务器名。

2011-09-14 09:13:25 916

原创 连接字串中Database Mirroring的Failover Partner设置的说明

在数据库镜像中,数据访问接口(data access provider)会缓存SQL Server返回的镜像服务器名。我们也可以在连接字串中指定故障转移伙伴(Failover Partner)。但是,如果连接字串中提供的故障转移伙伴与缓存的镜像服务器名不一致时会有什么情况发生?数

2011-09-13 09:46:06 1688

原创 SQL server 2008里面通过sys.dm_exec_procedure_stats得到存储过程的执行信息

很多DBA都希望能够得到某个存储过程的执行信息,比如:1)       执行了多少次2)       执行的执行计划如何3)       执行的平均读写如何4)       执行平均需要多少时间等等. 幸运的是SQL server 2008 提供了一个

2011-09-08 09:31:34 720

原创 如何知道TSQL语句已经运行了多久

一个常见的想法是,能否能够知道目前还在运行的TSQL 语句已经运行了多久呢? 你可以使用SQL server profiler 捕获语句的开始时间,和现在的时间比较就可以知道已经运行多久了。但是Profiler有时候可能带来一些性能影响。下面介绍如何利用DMV 来得到语句已经运行

2011-09-07 15:31:19 713

原创 有关SQL server connection KeepAlive 的FAQ

1、什么是SQL server TCP连接的keep Alive?简单说,keep alive 是SQL server在建立每一个TCP 连接的时候,指定了TCP 协议的keepaliveinterval 和keepalivetime参数。这样对每个TCP连接,如果该连接空闲

2011-09-05 11:01:50 729

原创 表现生猛的Like语句

自从升级到SQL 2005或者SQL 2008以后,我发现Like语句性能表现非常突出,有些Like语句比在SQL 2000运行的速度快了许多.究竟是什么改进导致Like语句表现如此生猛呢?答案就是字符串统计(string summary).  SQL server 2005

2011-09-05 10:59:44 667

原创 VSSADMIN命令无法列出SQL writer的问题

我们通常有两种方式来备份SQL Server的数据库。一种是通过在SQL Server中运行BACKUP DATABASE的T-SQL语句来备份数据库。另一种方法是使用SQL writer service来备份数据库。SQL writer service提供了一种通过Volume

2011-09-01 09:55:31 1274

原创 游标脚本性能问题解决与分析 (4) - Cursor Performance Analysis

第四部分、游标相关知识讲解(一)Fast Forward Only(快速只进)游标分析Microsoft SQL Server 实现了一种称作fast forward only游标的性能优化。http://msdn.microsoft.com/zh-cn/library/

2011-08-30 14:58:25 869 1

原创 游标脚本性能问题解决与分析 (3) - Cursor Performance Analysis

第三部分、几种解决方法殊途同归根据我们更多的分析和测试,以下几种方法都可以解决这个性能问题1.        使用top 102.        使用with (INDEX=S_AUDIT_ITEM_M3)3.        除去ORDER BY4.

2011-08-30 14:53:00 488

原创 游标脚本性能问题解决与分析 (2) - Cursor Performance Analysis

第二部分:游标的分类及特点从上面两个脚本执行情况的对比中可以看出,游标的选择对语句执行的性能具有一定的影响。在SQL Server联机丛书上列出了不止十种游标类型,但是所有游标都可以被划到两大类别:1. 通过从首次得到结果的临时拷贝映像静态进行2. 每次fetch

2011-08-20 18:17:57 567

原创 游标脚本性能问题解决与分析 (1) - Cursor Performance Analysis

第一部分:游标类型对性能影响的实例引出下面的两个游标脚本分别创建并执行了dynamic和fast forward only两种类型的游标:不理想的游标类型:(dynamic游标)理想的游标类型(fast forward only游标)

2011-08-20 18:12:52 769

原创 Dynamic Parameters造成的linked server性能问题

曾今遇到这样一个linked server的性能问题。  客户这边的linked server是从一台SQL Server 2000的服务器连接到一台后端的Oracle的数据库。客户遇到的问题是,他们将linked server运行在out of process模式下时,执行一句类似”select * from Oracleserver.databasename.schema.T wher

2011-06-03 10:57:00 460

原创 SQL Server 连接加密 (2) -- SQL Server connection encyption

<br />上篇文章中我们讲到了SQL Server在建立连接时的加密。今天我们继续讨论SQL Server在建立完连接后在该连接上的数据传送加密。<br />  <br />默认情况下SQL Server是否加密收发的数据包<br />答案是否定的。SQL Server默认只在建立连接时进行加密以保护客户端发送过来的账户登录信息<br />在上篇文章中所做的实验,我们可以看到SSL已经启用,并且在所有网络包中都找不到密码的明文。但是如果你选中任意一个TDS:SQLBatch的数据包,你可以看到类似如下的结

2011-05-19 09:35:00 832

原创 SQL Server 连接加密 (1) -- SQL Server connection encyption

<br />联机从书上提到过从SQL Server 2005开始,SQL Server和客户端的连接是自动加密的。但是你可能也注意到在SQL Server Configuration Manager里是有地方去设置加密与否的,而且这个选项默认是关闭的。这可能会显得有些自相矛盾了。此外你也可能注意到,Server Configuration Manager和加密相关的选项出现在了两个地方,一个是客户端选项,一个是服务器端选项,这些又都有些什么区别呢?今天我来详细解释下它们之间的关系。<br />  <br /

2011-05-19 09:33:00 774

原创 为什么thread数目会超过MAXDOP的限制?

<br />由于各种各样的原因,我们可能需要通过sp_configure来设置最大并行度,也就是Max Degree of Parallelism (MAXDOP)。常见的场景包括由于并行引起的死锁,由于并行造成的CXPACKET类型的等待,以及由于并行导致的RESOURCE_SEMAPHORE类型的等待。<br />但是不知道你们是否注意到了,即使设置了MAXDOP,有时候你在sysprocesses中看到的对应一个SPID的线程数目仍可能大于MAXDOP的值。这是为什么?<br /> <br />让我们

2011-05-13 10:44:00 1723

原创 如何监测谁用了SQL Server的Tempdb空间?

Tempdb系统数据库是一个全局资源,供连接到 SQL Server 实例的所有用户使用。在现在的SQL Server里,其使用频率可能会超过用户的想象。如果Tempdb空间耗尽,许多操作将不能完成。<br />作为一个支持工程师,会被经常问到象“我的Tempdb为什么这么大?”“是谁把我的Tempdb空间用完的?”在SQL 2000的时候,这个问题很难回答。好在SQL 2005以后,引入了一张新的管理视图:sys.dm_db_file_space_usage。通过查询这张视图,能了解tempdb的空间使用

2011-05-13 10:29:00 685

原创 无法使用SQL login去登陆SQL Server - 'Password did not match'

<br />问题描述:在某一台机器上的management studio,始终无法使用SQL login去登陆SQL Server。但是如果在其他的机器上,使用同样的SQL login是可以登陆SQL Server的。<br />错误信息:'Password did not match '<br /> <br />诊断步骤:<br />1.       在这台机器上使用SQLCMD连接SQL Server,用同样的SQL login 登陆,是否可以成功?<br />2.       创建一个新的SQL lo

2011-04-21 10:59:00 545

原创 Tempdb怎么会成为性能瓶颈?

<br />我曾经遇到过这样一个性能问题。一个客户反映,他的SQL Server会在某一段时间里,突然变得非常慢。最后他不得不重启SQL Server服务。而重启以后,问题就消失了。客户在出现问题的那段时间里,收集了主要的系统动态管理视图,以及性能监视器里和SQL Server有关的那些计数器。顺便说一句,这台服务器有16颗CPU。<br /> <br />Sys.dm_exec_requests是检查SQL Server性能瓶颈的有力工具。在处理SQL Server性能问题的时候,它是作者第二个检查的对象

2011-04-21 10:58:00 643

原创 谁用掉了我的数据库空间?

<br />随着硬件能力的升级,以及软件应用的扩展,现在的数据库是越来越大了。回想10年前,一个上百GB的数据库就会把支持工程师吓得要命。而现在,上TB的数据库真是比比皆是。<br /> <br />DBA遇到的一个常见问题,就是如何监视数据空间的增长情况,或者在数据库用满的时候,能够迅速定位谁是罪魁祸首。了解一个数据库空间使用的最简单方法,就是在Management Studio里,右键点击数据库名字,选择”Reports” – “Standard Reports”,缺省就有4个Disk Usage的报表

2011-04-21 10:56:00 326

原创 [How To]如何给SQL Server配置证书

<br />默认情况下从SQL Server 2005开始SQL Server会使用自动生成的证书来加密与客户的连接和数据包传输。你也可以给SQL Server配置你自己的证书来实现更高的安全性。<br />  <br />证书从哪里获得<br />你可以从第三方的证书颁发机构获得证书。你也可以选择使用工具制作自签名的证书用作测试的用途,或者你可以从你企业内部的证书的服务器来申请证书用作企业内部使用。<br />要制作自签名的证书,你可以使用IIS 6.0 Resource Kit中的SelfSSL工具(如

2011-04-21 10:54:00 1806 1

原创 证书引起SQL Server无法启动的Troubleshooting

<br />SQL Server不能启动的原因是多种多样的。其中也可能由于证书配置的不恰当造成SQL Server无法启动。在这里我们介绍一些针对这类问题的troubleshooting手段。<br />  <br />如果判断SQL Server无法启动和证书有关<br />SQL Server无法启动的原因多种多样,那么如何确定是和证书相关的呢?最直接的方法是先了解下这个SQL Server实例是否配置过或者曾经手动配置过证书。如果没有手动配置过证书的话,SQL Server是使用自动生成的自签名证书的

2011-04-21 10:52:00 731

原创 SQL 2008执行语句遇到内存不足的案例(error 701)之一

<br />某个特定的存储过程在SQL 2008中执行会遇到以下错误:<br />Msg 701, Level 17, State 123, Procedure GetAllRevisions_Monthly, Line 22<br />There is insufficient system memory in resource pool 'internal' to run this query.<br />Msg 701, Level 17, State 65, Procedure GetAllRevi

2011-04-21 10:50:00 2129 2

原创 SQL Server 连接问题圣经-命名管道 (4)

<br />七. 一些常见的连接问题<br /> <br />连接问题一:<br />[Named Pipes]SQL Server does not exist or access denied.<br />[Named Pipes]ConnectionOpen (Connect()).<br /> <br />这个连接错误多是因为客户端没有找到命名管道服务器(也就是SQL Server)造成的。<br />解决方法:<br />1)检查网络连通性,如ping等,确认SQL Server已经启动。<br

2011-04-21 10:49:00 636

原创 SQL Server 连接问题圣经-命名管道 (3)

<br />五。 命名管道连接问题的解决步骤<br /> <br />好了,介绍到这里你应该对命名管道很不陌生了,也应该是时候讨论命名管道连接问题的解决步骤了:<br /> <br />步骤1:使用服务器端网络实用工具检查命名管道配置并确认SQL Server已经监听了命名管道协议。<br /> <br />步骤2:使用客户端网络实用工具检查客户端的连接协议配置,确保启用了命名管道。当然,客户端连接的缺省管道名称需要和SQL服务器监听的一致。另外,需要仔细查看是不是存在错误的SQL Server 别名。<b

2011-04-21 10:48:00 476

原创 SQL Server 连接问题圣经-命名管道 (2)

<br />四。客户端的命名管道配置<br /> <br />大多数情况下在客户端你不需要进行配置,因为命名管道协议默认是启用的。但既然是检查命名管道的连接问题,还是需要熟悉客户端的命名管道配置。 <br /> <br />1. 使用客户端网络实用工具<br /> <br />在客户端可以使用客户端网络实用工具配置连接到SQL Server 使用的协议。运行cliconfg.exe或从开始-->程序-->Microsoft SQL Server -->客户端网络实用工具调出该工具(参考图5)<br /> <

2011-04-21 10:46:00 681

原创 SQL Server 连接问题圣经-命名管道 (1)

<br />一。前言<br /> <br />在使用SQL Server 的过程中,用户遇到的最多的莫过于连接问题了。本文将深度讨论SQL Server 连接问题的方方面面,希望能帮你彻底解决SQL server 的连接问题。<br /> <br />SQL Server 支持的通讯协议很多,如命名管道(Named Pipes)、TCP/IP 套接字、共享内存(Shared Memory)等。由于最常用的是前两种即命名管道和TCP/IP套接字,所以我们主要讨论这两种协议的连接问题。先来讨论命名管道,然后我们

2011-04-21 10:45:00 544

原创 访问私钥的致命错误导致SQL Server无法启动

<br />和证书相关的SQL Server无法启动问题可能会有很多原因。今天介绍其中一种情况。这种情况相对少见,而且根本原因也隐藏的比较深。<br />                                   <br /><br /><br />SQL Server无法启动的症状<br />当SQL Server无法启动的时候,一般都要检查SQL error log和Windows event  log来对问题进行判断。有时候你在SQL error log里看到如下错误。<br /><br /

2011-04-21 10:43:00 705

原创 应用索引技术优化SQL 语句(Part 3)

<br />六、有关索引的几个问题<br /> <br />问题1,是否值得在identity字段上建立聚集索引。答案取决于identity 字段如何在语句中使用。如果你经常根据该字段搜索返回很少的行,那么在其上建立索引是值得的。反之如果identity字段根本很少在语句中使用,那么就不应该对其建立任何索引。<br /> <br />问题2,一个表应该建立多少索引合适。如果表的80%以上的语句都是读操作,那么索引可以多些。但是不要太多。特别是不要对那些更新频繁的表其建立很多的索引。很少表有超过5个以上的索引

2011-04-21 10:40:00 321

原创 应用索引技术优化SQL 语句(Part 2)

<br />四、分析执行计划创建索引<br /> <br />根据语句的执行计划来判断应该对什么表创建什么索引,是常用优化技巧。其实文章前面的例子已经告诉读者如何结合statistics profile 和statistics IO语句的输出来创建索引。这里分析一个稍微复杂一些的例子。<br /> <br />SQL语句如下:<br />SELECT CurrentseNo FROM v_ptdata_edss WHERE MRN = @P1  <br /> <br />Statistics IO的输出如下

2011-04-21 10:38:00 296

原创 应用索引技术优化SQL 语句(Part 1)

<br />一、前言<br /> <br />很多数据库系统性能不理想是因为系统没有经过整体优化,存在大量性能低下的SQL 语句。这类SQL语句性能不好的首要原因是缺乏高效的索引。没有索引除了导致语句本身运行速度慢外,更是导致大量的磁盘读写操作,使得整个系统性能都受之影响而变差。解决这类系统的首要办法是优化这些没有索引或索引不够好的SQL语句。<br /> <br />本文讨论和索引相关的有关内容,以及通过分析语句的执行计划来讲述如何应用索引技术来优化SQL 语句。通过分析执行计划,读者可以检查索引是否有用

2011-04-21 10:36:00 386

原创 谈谈SQL 语句的优化技术 (2)

<br />三、优化SQL语句的系统设计原则<br /> <br />仅仅简化还是不够。SQL语句的优化在系统的设计阶段就要通盘考虑。系统设计越合理,需要优化或后期返工的地方就越少。系统逻辑流程如果不合理,那么常会导致本来需要一个操作就可以解决的问题却要作好几个操作才能实现,反映在数据库上就是发出过多或过复杂的SQL语句。所以数据库系统设计是系统高性能运行的首要关键。<br /> <br />很多系统开发者更关心功能的实现而不是数据库系统的整体运行性能。相当多的开发者对数据库性能优化技术不是很了解,写出来的

2011-04-21 10:09:00 298

原创 谈谈SQL 语句的优化技术 (1)

<br />一、引言<br /> <br />一个凸现在很多开发者或数据库管理员面前的问题是数据库系统的性能问题。性能不理想的系统中除了一部分是因为应用程序的负载确实超过了服务器的实际处理能力外,更多的是因为系统存在大量的SQL语句需要优化。本文通过一个例子讲述如何应用简化技术来优化SQL 语句,也讨论在系统设计阶段应该考虑的和语句性能密切相关的一些问题。<br /> <br />如果读者不知道应该优化数据库系统的哪些SQL语句,那么建议读者参考笔者的另外一篇文章,《应用Profiler优化SQL Serv

2011-04-21 09:53:00 396

原创 Unicode字段也有collation?

<br />一个常常让人困惑的问题就是,为什么SQL Server 的Unicode 字段(nvarchar/nchar/ntext)也有collation定义呢?Unicode字段不是可以存储多语言吗?比如下面的表定义:<br /> <br />CREATETABLE tt1<br />(<br />  c1 int,<br />  c2 nvarchar(10)  collate Chinese_PRC_Stroke_CI_AS<br /> )<br /> <br />上门的c2 字段是nvarchar

2011-04-21 09:45:00 935

原创 谁占用了我的Buffer Pool?

<br />我在做SQL Server 7.0技术支持的时候有客户问我,“我的SQL Server buffer pool很大,有办法知道是哪些对象吃掉我的buffer Pool内存么?比方说,能否知道是哪个数据库,哪个表,哪个index占用了buffer Pool么?”当时我没有找到这个问题的答案,但是我一直记着这个问题。直到SQL server 2005 版本出现,这个问题迎刃而解。答案就是使用动态视图(DMV)sys.dm_os_buffer_descriptors。<br /> <br /> <br

2011-04-21 09:43:00 277

原创 This is the first article

<br />This is the first article

2011-04-21 09:30:00 279

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除