随笔分类 -  SQL SERVER

摘要:背景 作为RDS for SQL Server团队,我们给用户提供核心的商业数据库服务,而数据库服务的SLA至关重要,而RTO又是数据库SLA的重要部分,但最近对于一些使用大规格实例的GC6以上客户,出现过一些由于重启/HA导致花费较长时间在数据库恢复过程,从而导致长时间服务不可用,严重影响了我们给 阅读全文
posted @ 2024-02-18 13:45 CareySon 阅读(249) 评论(3) 推荐(2) 编辑
摘要:开始之前 本篇文章仅仅是针对SQL Server 2022新推出功能的概览,以及我个人作为用户视角对于每个功能的理解,有些功能会结合一些我的经验进行描述,实际上,SQL Server 2022在引擎层面的增强的确算是里程碑级别,涉及到的每一个功能点展开都可以单独开出一篇文章。但本篇文章只是一个概览性 阅读全文
posted @ 2023-08-24 09:41 CareySon 阅读(3546) 评论(12) 推荐(16) 编辑
摘要:有些时候,有些作业遇到问题执行时间过长,因此我写了一个脚本可以根据历史记录,找出执行时间过长的作业,在监控中就可以及时发现这些作业并尽早解决,代码如下: SELECT sj.name , sja.start_execution_date,DATEDIFF (SECOND ,sja.start_execution_date,GETDATE() ) A... 阅读全文
posted @ 2016-03-10 16:10 CareySon 阅读(4827) 评论(2) 推荐(7) 编辑
摘要:我在首届微软技术大会的Session分享了一个关于SQL Server升级的主题,现在将PPT分享出来。 您可以点击这里下载PPT。 也非常感谢微软中国邀请我进行这次分享。 阅读全文
posted @ 2015-10-29 09:12 CareySon 阅读(2155) 评论(6) 推荐(3) 编辑
摘要:SQL Server中的公共表表达式(Common Table Expression,CTE)提供了一种便利的方式使得我们进行递归查询。所谓递归查询方便对某个表进行不断的递归从而更加容易的获得带有层级结构的数据。典型的例子如MSDN(https://technet.microsoft.com/en-us/library/ms186243(v=sql.105).aspx)中提到的获取员工关系... 阅读全文
posted @ 2015-05-26 17:17 CareySon 阅读(6202) 评论(1) 推荐(9) 编辑
摘要:有时候需要一次性将SQL Server中的数据导出给其他部门的也许进行关联或分析,这种需求对于SSIS来说当然是非常简单,但很多时候仅仅需要一次性导出这些数据而建立一个SSIS包就显得小题大做,而SQL Server的导入导出工具其中BUG还是蛮多的,最简单的办法是BCP。 数据导出为XML 在SQL Server 2005之后提供了一个for xml子句在关系数据库中原... 阅读全文
posted @ 2015-02-06 12:10 CareySon 阅读(20450) 评论(5) 推荐(1) 编辑
摘要:最近有一个朋友问我一个关于给查询操作强制上X锁却不阻塞的问题。该查询写在一个存储过程中,代码如代码1所示: 1: create PROC [dbo].[GetCityOrders] 2: @city NVARCHAR(10) , 3: ... 阅读全文
posted @ 2015-01-15 16:08 CareySon 阅读(2425) 评论(21) 推荐(7) 编辑
摘要:有时候希望获取当前机器上安装的SQL Server序列号,但注册表中序列号是经过加密的,因此我写了一个小工具获取当前SQL Server的序列号。程序比较粗糙,没有做错误验证。 下载地址:http://files.cnblogs.com/CareySon/SQLServerProductCode.rar 阅读全文
posted @ 2014-10-13 11:57 CareySon 阅读(5222) 评论(12) 推荐(3) 编辑
摘要:很多时候,在我们规划SQL Server数据库的空间,或向存储方面要空间时,都需要估算所需申请数据库空间的大小,估计未来最简单的办法就是看过去的趋势,这通常也是最合理的方式。 通常来讲,一个运维良好的数据库都需要做定期基线(baseline),有了基线才会知道什么是正常。一个简单的例子例如,一些人的血压平常偏低,那么80的低压对他来说就是不正常了。但现实情况是大多数系统并没有采集... 阅读全文
posted @ 2014-09-23 11:40 CareySon 阅读(5630) 评论(3) 推荐(4) 编辑
摘要:本篇是我在IT168的约稿,原文地址:http://tech.it168.com/a2014/0620/1637/000001637358_all.shtml IT行业已经进入了云时代,未来越来越多的企业IT基础架构将会部署在公有云、私有云或者混合云上,而数据库作为IT基础架构中最重要的部分与云的结合将变得非常重要。SQL Server 2014打通了公有云与组织内部的关系,无论是... 阅读全文
posted @ 2014-07-22 09:34 CareySon 阅读(3295) 评论(9) 推荐(1) 编辑
摘要:简介 有些时间,由于日志损坏等原因,导致了数据库质疑。如果此时你分离了数据库,那你会发现你无法再附加上数据库,那后果还是很严重的。因此本文提供了一种方式,可以使得当数据库质疑并且分离出了实例,依然可以用一种HACK的方法进行附加。 具体步骤 目前有一个数据库AttchSuspectDatabase,中只有一张表Test,其中只有一列INT列,目前其中数据是1,2。我们... 阅读全文
posted @ 2014-01-07 15:54 CareySon 阅读(8414) 评论(9) 推荐(4) 编辑
摘要:在SQL Server中,通常版本号的命名是大版本.小版本.累积更新这种形式,比如说9.X.XXX就是SQL Server 2005。下面我将把SQL Server中版本号对应的版本列出来,以方便查阅。 SQL Server 2005版本(9.X) -- SQL 2005 SP2 Builds SQL 2005 SP3 Builds SQL 2005... 阅读全文
posted @ 2013-12-30 11:15 CareySon 阅读(14772) 评论(4) 推荐(2) 编辑
摘要:简介 数据库中表的设计是一个老生常谈的话题,对于表的设计却依然存在某些误区,本篇文章对来从范式和性能的角度谈一谈数据库的设计。 设计数据库? 首先第一个问题是,对于表的设计而言,我们究竟需要何种程度的设计。这取决于您数据库的规模,打个比方,就好比您盖一个两层小楼,基本无需什么设计,直接上手即可,如果盖一个两层小楼也去找设计院的话,那岂不是画蛇添足。但是对盖一座大厦来说,... 阅读全文
posted @ 2013-06-20 19:06 CareySon 阅读(5622) 评论(15) 推荐(23) 编辑
摘要:本篇文章起源于在GCR MVP Open Day的时候和C# MVP张响讨论连接池的概念而来的。因此单独写一篇文章剖析一下连接池。 为什么需要连接池 剖析一个技术第一个要问的是,这项技术为什么存在。 对于每一个到SQL Server的连接,都需要经历TCP/IP协议的三次握手,身份认证,在SQL Server里建立连接,分配资源等。而当客户端关闭连接时,客户端就... 阅读全文
posted @ 2012-11-15 09:42 CareySon 阅读(6872) 评论(9) 推荐(24) 编辑
摘要:今天在ITPUB看到一个人问的语句问题:http://www.itpub.net/thread-1734957-1-1.html 问题如下: table:emp parent_id emp_id emp_name total_amout NULL 2 Andrew 200 2 1 Nancy 100 2 3 Janet 120 3 4 Michae... 阅读全文
posted @ 2012-11-01 17:17 CareySon 阅读(4777) 评论(7) 推荐(1) 编辑
摘要:在SQL Server的世界中,SQL Server在Windows之上有一套自己的任务调度和资源分配系统,这使得SQL Server作为Windows的一个进程,却可以处理大量的并发,这些任务调度和资源分配非常像一个操作系统,因此SQL Server在Windows之上,有一层被称为SQL OS的系统。 类似Windows进程之间的任务调度,SQL Server OS也有一套... 阅读全文
posted @ 2012-10-06 19:15 CareySon 阅读(3192) 评论(5) 推荐(0) 编辑
摘要:简介 死锁的本质是一种僵持状态,是多个主体对于资源的争用而导致的。理解死锁首先需要对死锁所涉及的相关观念有一个理解。 一些基础知识 要理解SQL Server中的死锁,更好的方式是通过类比从更大的面理解死锁。比如说一个经典的例子就是汽车(主体)对于道路(资源)的征用,如图1所示。 图1.对于死锁的直观理解 在图1的例子中,每队汽车... 阅读全文
posted @ 2012-09-19 13:34 CareySon 阅读(51671) 评论(36) 推荐(71) 编辑
摘要:简介 我们已经知道SQL Server IO最小的单位是页,连续的8个页是一个区。SQL Server需要一种方式来知道其所管辖的数据库中的空间使用情况,这就是GAM页和SGAM页。 Global Allocation Map Page GAM(全局分配位图)是用于标识SQL Server空间使用的位图的页。位于数据库的第3个页,也就是页号是2的页。下面我们通过新建一... 阅读全文
posted @ 2012-09-12 14:45 CareySon 阅读(3429) 评论(1) 推荐(2) 编辑
摘要:简介 硬盘作为现在计算机内部最后的机械存储部件,速度相比较内存和Cache而言会慢好几个数量级。但所幸的是,硬盘的成本是远远低于内存的。因此硬盘作为永久存储器是比较合适的,所幸的是为了克服硬盘慢速带来的问题,操作系统会对硬盘的使用有一个优化,下面让我们先来看硬盘的原理。 硬盘的原理简介 一个典型的硬盘如图1所示。 图1.一个典型的硬盘 ... 阅读全文
posted @ 2012-08-20 09:01 CareySon 阅读(11164) 评论(23) 推荐(35) 编辑
摘要:正如”随机数的生成过程非常重要因此我们不能对其视而不见”(引自Robert R -橡树岭国家实验室),我们希望占用您一点点宝贵的时间在基于SQL Server MVP Jeff Moden的成果的基础上完成这项工作。对于使用SQL来产生随机数来说,我们会重点讲解从均匀分布随机数(non-uniformly distributed random numbers)的基础上生成非均匀分布随机数(uniformly distributed random numbers);包括一些统计分布的基础来帮你起步。 正如我们所知,随机数在仿真中非常重要(尤其是蒙特卡洛仿真法),还有随机数在密码... 阅读全文
posted @ 2012-07-11 16:25 CareySon 阅读(7541) 评论(3) 推荐(6) 编辑