代码改变世界

随笔分类 - 00.SQL Server

QunInfo群数据库的还原与优化

2015-02-28 17:02 by 听风吹雨, 4636 阅读, 收藏, 编辑
摘要:一、 背景 这个数据库的数据文件mdf大概有8.5G左右,当还原数据库之后感觉可以做很多性能方面上的调优,合并数据后mdf数据文件大概有6.2G左右,行压缩后mdf数据文件大概有4.8G左右,页压缩后mdf数据文件大概有4.5G左右,这里处于技术研究的目的,讲讲研究的成果分析,不用于商业目的;二、... 阅读全文

二、八、十、十六进制转换(图解篇)

2015-01-19 14:46 by 听风吹雨, 208342 阅读, 收藏, 编辑
摘要: 之前使用SQL把十进制的整数转换为三十六进制,SQL代码请参考:SQL Server 进制转换函数,其实它是基于二、八、十、十六进制转换的计算公式的,进制之间的转换是很基础的知识,但是我发现网络上没有一篇能把它说的清晰、简单、易懂的文章,所以我才写这篇文章的念头,希望能让你再也不用担心、害怕进制之间的转换了。   下面是二、八、十、十六进制之间关系的结构图: 阅读全文

GroupData群数据库的还原与优化

2014-12-18 14:07 by 听风吹雨, 4598 阅读, 收藏, 编辑
摘要: 这个数据库的数据文件mdf大概有83G左右,当还原数据库之后感觉可以做很多性能方面上的调优,合并数据后mdf数据文件大概有59G左右,行压缩后mdf数据文件大概有39G左右,页压缩后mdf数据文件大概有34G左右,这里处于技术研究的目的,讲讲研究的成果分析,不用于商业目的;优化项 我们可以从下面4个不同的方面来优化这两个数据库: (一)对表进行分区; (二)创建合适表索引; (三)使用行压缩,压缩行数据; (四)重新设计表结构,优化表空间; 阅读全文

SQL Server 系列文章快速导航(SWF版)

2014-11-10 15:46 by 听风吹雨, 5080 阅读, 收藏, 编辑
摘要: 一.前言 在博客园写博客不自不觉已经有5个年头了,一开始只是为了记录工作中遇到的问题和解决办法,后来写的文章不自不觉的侧重在SQL Server方面的技术文章,在2014年1月终于鼓起勇气申请了微软SQL Server方面的最有价值专家(MVP),并荣幸的在4月份获得此殊荣。   今天整理了下文章,为了让大家更容易检索到(这里指人而不是所谓的SEO)我的文章,所以生成了一份SWF,以图形的方式,大家可以通过里面的链接快速进入文章,而且大家也可以下载这份SWF到本地,同样可以快速浏览。 阅读全文

SQL Server 动态生成数据库所有表Insert语句

2014-10-31 10:27 by 听风吹雨, 7205 阅读, 收藏, 编辑
摘要: 一、 背景 SQL Server,如果我们需要把数据库A的所有表数据到数据库B中,通常我们会怎么做呢?我会使用SSMS的导入导出功能,进行表数据的导入导出,无可厚非,这样的导入非常简单和方便; 但是,当我们的表有上百个,而且有些表是有自增ID的,那么这个时候使用SSMS的话,你需要一个个手动设置(如图1),你要知道,需要设置上百个的这些选项是件多么痛苦的事情,而且最后很可能会因为外键约束导致导入导 阅读全文

SQL Server 进制转换函数

2014-09-29 21:30 by 听风吹雨, 30476 阅读, 收藏, 编辑
摘要: 一、背景 前段时间群里的朋友问了一个问题:“在查询时增加一个递增序列,如:0x00000001,即每一个都是36进位(0—9,A--Z),0x0000000Z后面将是0x00000010,生成一个像下面的映射表“: 二、十进制转换为十六进制 在网上有很多资料关于使用SQL语句把十进制转换为十六进制的资料,比如: --方式1 SELECT CONVERT(VARBINARY(50), 23785) 执行返回值为0x00005CE9,但是需要注意的是,这本应该返回二进制的 阅读全文

谈谈我的微软特约稿:《SQL Server 2014 新特性:IO资源调控》

2014-07-01 10:19 by 听风吹雨, 4660 阅读, 收藏, 编辑
摘要: 写这篇文章的目的是想记录这次的撰写文章的经历,其实一篇技术文章来得并不容易,之前自己写博客的随意性很强,排版可以根据自己喜好,但是一篇文章要被大家所接受,让大家愿意读完其实是一件很难的事情,所以排版还是挺重要的,这里我想提示下IT168的编辑,我的SQL代码其实是有高亮的,但是编辑发出来后发现高亮不见,阅读起来的确很不爽,估计大家也有同样的感觉。再者就是讲讲这次的技术内容,其实在SQL Server 2014之前就有资源调控器这个功能了,所以网上也不少这方面的资料,所以要写这个主题就需要找到一些新的亮点(新功能+通俗类比) 阅读全文

微软MVP攻略 (如何成为MVP?一个SQL Server MVP的经验之谈)

2014-06-16 10:46 by 听风吹雨, 15589 阅读, 收藏, 编辑
摘要: 二.初衷   搞微软技术的,大家或多或少都有听说过微软的“最有价值专家”(MVP),网上也有不少资料对这个称谓做了介绍,但是都是一些大体的描述,并没有更加细节方面的,比如申请成为MVP的流程,成为MVP有那些资料需要填写、在哪里填写等等,所以我才萌发了以一个过来人的身份写一份关于微软MVP的攻略手册,希望能为想成为MVP的你提供指引。 三.什么是微软MVP?MVP(Most Valuable Professionals,最有价值专家)是指具备一种或多种微软技术专业知识,并且积极参与在线或离线的社群活动,经常与其他专业人士分享知识和专业技能,受人尊敬、信任,而且平易近人的专家。 阅读全文

SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段值)

2014-05-26 16:09 by 听风吹雨, 71994 阅读, 收藏, 编辑
摘要: 其实行转列并不是一个什么新鲜的话题了,甚至已经被大家说到烂了,网上的很多例子多多少少都有些问题,所以我希望能让大家快速的看到执行的效果,所以在动态列的基础上再把表、分组字段、行转列字段、值这四个行转列固定需要的值变成真正意义的参数化,大家只需要根据自己的环境,设置参数值,马上就能看到效果了(可以直接跳转至:“参数化动态PIVOT行转列”查看具体的脚本代码)。行转列的效果图如图1所示: 阅读全文

SQL Server 在多个数据库中创建同一个存储过程(Create Same Stored Procedure in All Databases)

2014-05-13 10:35 by 听风吹雨, 6704 阅读, 收藏, 编辑
摘要: 在我的数据库服务器上,同一个实例下面挂载着许多相同结构的数据库,他们为不同公司提供着服务,在许多时候我需要同时创建、修改、删除一些对象,存储过程就是其中一个,但是想要批量创建存储,这有些特殊,下面就教你如何实现在多个数据库中创建同一个存储过程(Create Same Stored Procedure in All Databases) 三.遇到的问题(Problems)   在之前的文章中多次谈到使用游标的方式处理的各种问题: 阅读全文

大数据时代下的SQL Server第三方负载均衡方案----Moebius测试

2014-04-04 09:29 by 听风吹雨, 29168 阅读, 收藏, 编辑
摘要: 前几天在SQL Server MVP宋大侠(宋沄剑)的一篇文章"数据库集群技术漫谈”中看到了格瑞趋势在SQL Server上的负载均衡产品Moebius,搞数据库的都知道:在Oracle上有RAC,MySQL也有对应的方案(可参考:MySQL搭建Amoeba系列),而SQL Server上直到SQL Server 2012版本的AlwaysOn到来,微软都没有提供一个负载均衡方案,我从宋大侠那里找来一个Moebius的测试版本进行一下测试,下面是我测试的过程。 阅读全文

SQL Server 大数据搬迁之文件组备份还原实战

2014-03-05 11:15 by 听风吹雨, 13641 阅读, 收藏, 编辑
摘要: 有一个数据库大概在700G左右,需要从服务器A搬迁到服务器B,两台服务器网络传输速度可以达到8MB/s,怎么做才能更快的搬迁并且宕机时间最短呢?   数据库业务逻辑概述:这个数据库只会插入数据,每天大概有300W条数据,不会对数据进行修改,只有一个表比较大,并且这个表是以自增ID作为分区依据列的,文件组会被重用,数据库为简单恢复模式,我定时会对表数据进行交换分区删除数据;三.解决方案(Solution)之前我也写过关于搬迁数据库的一些文章: 阅读全文

SQL Server 批量主分区备份(Multiple Jobs)

2014-02-11 11:21 by 听风吹雨, 2699 阅读, 收藏, 编辑
摘要: 在公司的内网有台数据库的测试服务器,这台服务器是提供给开发人员使用的,在上面有很多的数据库,有些是临时系统用到的数据库,这些数据库有一个共同点:数据库表结构比较重要,数据库只有一些测试数据,也就是说这些数据库都很小,而整台服务器的数据库又非常多;   现在有这样一个需求,希望间隔一段时间就备份所有数据库,所以这里写了这篇文章,这也是另外一篇文章SQL Server 批量备份数据库(主分区)的基础; 阅读全文

SQL Server 批量完整备份

2014-02-10 14:59 by 听风吹雨, 9551 阅读, 收藏, 编辑
摘要: 在公司的内网有台数据库的测试服务器,这台服务器是提供给开发人员使用的,在上面有很多的数据库,有些是临时系统用到的数据库,这些数据库有一个共同点:数据库表结构比较重要,数据库只有一些测试数据,也就是说这些数据库都很小,而整台服务器的数据库又非常多;   现在有这样一个需求,希望间隔一段时间就备份所有数据库,所以这里写了这篇文章,这也是另外一篇文章SQL Server 批量备份数据库(主分区)的基础; 阅读全文

SQL Server 游标运用:鼠标轨迹字符串分割

2014-02-07 17:04 by 听风吹雨, 1990 阅读, 收藏, 编辑
摘要: 我们的系统中记录了用户的鼠标行为轨迹字符串,这些字符串的格式是:PosSet:[573,1103,2010-09-03 22:32:35],[864,110,2010-09-03 22:32:57],这个字段表示用户点击页面的X坐标,Y坐标,时间。现在要求对这样字符串进行分割。   需要注意的是当字符串只有一个坐标的时候,如:PosSet:[513,1303,2010-09-03 22:34:35],你需要考虑这种情况的处理,因为这个时候就没有分隔字符在字符串了。   还需要考虑字符串不规则的时候的异常处理; 阅读全文

SQL Server 批量主分区备份(One Job)

2014-01-28 12:18 by 听风吹雨, 2770 阅读, 收藏, 编辑
摘要: 一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents)背景(Contexts)案例分析(Case)实现代码(SQL Codes)主分区完整、差异还原(Primary Backup And Restore)参考文献(References)二.背景(Contexts) 在我的数据库实例中,有很多下图所示的数据库,这些数据库的名称是有规律的,每个数据库包含的表都是相同的,其中2个表是类似流水记录的表,表的数据量会比较大,占用的空间有几十G到上百G不等,这2个表相对于其它的配置表来说是比较不重要的 阅读全文

SQL Server 即时文件初始化

2014-01-13 09:43 by 听风吹雨, 4388 阅读, 收藏, 编辑
摘要: 数据库服务器在为表分配初始值的时候很慢,分配初始值40GB的数据文件,花了30多分钟,一开始的时候一直认为是服务器磁盘的写入速度太慢造成的,后来经过北京-宋沄剑的提醒:即时文件初始化(Instant File Initialization),设置这一选项之后,速度提升到了19秒,下面将描述这个优化的设置过程。 三.基础知识(Rudimentary Knowledge) 就数据库而言,以下几种情况需要对文件初始化: 1. 创建数据库; 2. 向现有数据库中添加文件、日志或数据; 3. 增大现有文件的大小(包括自动增长操作); 阅读全文

SQL Server 链接服务器的安全

2014-01-03 19:42 by 听风吹雨, 8796 阅读, 收藏, 编辑
摘要: 一.背景(Contexts) 当需要用远程服务器数据库和本地进行数据交互的时候(例如导数据等),我们通常会在本地创建一个远程服务器的数据库链接,关于创建创建链接服务器可以参考:SQL Server 创建链接服务器,但是我们很少去关注链接服务器的安全性问题。 为了控制链接服务器的安全性,我们采取的方法是:控制只有某个用户能使用这个链接服务器,实现的效果就如Figure1和Figure2所示,TestLink用户能看到并使用链接服务器:[192.168.1.5],而sa用户却无法看到链接服务器 阅读全文

SQL Server Audit监控触发器状态

2013-12-31 14:14 by 听风吹雨, 2710 阅读, 收藏, 编辑
摘要: DML触发器一般会运用在业务系统的逻辑处理上,在你对数据库用户权限控制不当的时候,这些DML触发器很可能莫名的被禁用或者删除了,你作为数据库管理员你想做冤大头嘛?背黑锅嘛?如果不想,下面给出4种解决方案: 1. 使用DDL触发器对服务级别或者数据库级别进行监控,可以参考文档:SQL Server DDL触发器运用,效果如下图所示: (Figure1:触发器的日志) 2. 也可以使用数据库DDL事件通知,可以参考文档:SQL Server 事件通知(Event notifications),效果如上图所示; 阅读全文

SQL Server 监控系列(文章索引)

2013-12-20 16:32 by 听风吹雨, 2468 阅读, 收藏, 编辑
摘要: 一.前言(Introduction) SQL Server监控在很多时候可以帮助我们了解数据库做了些什么,比如谁谁在什么时候修改了表结构,谁谁在删除了某个对象,当这些事情发生了,老板在后面追着说这是谁干的,如果你找不出元凶,那么就成为背黑锅的人了。 如果你想更了解什么时候需要对数据库做什么监控,那么我建议你看看本系列文章; 下图是一个关于SQL Server可用做监控功能的逻辑关系图: (Figure1:SQL Server可用做监控功能的逻辑关系图) 二.系列文章索引(Catalog) 阅读全文