代码改变世界

随笔分类 -  00.SQL Server 性能优化

QunInfo群数据库的还原与优化

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

GroupData群数据库的还原与优化

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

SQL Server 即时文件初始化

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

SQL Server 性能优化实战系列(文章索引)

2012-01-20 14:54 by 听风吹雨, 9862 阅读, 收藏, 编辑
摘要: 二.前言(Introduction) 性能优化是数据库方向一个很重要的技能,这也是快速提供企业级应用性能最快捷的方式,所以性能优化的高低很大程度上表现了个人技能的高低。 下面的文章是我在实际项目中性能优化的一些经验,希望对那些需要实战帮助的童鞋有一点提示和帮助。希望大家拍砖。 三.调优流程图(Process) 下图是一个关于SQL Server性能调优步骤的流程图:(Figure1:调优基本流程图) 四.系列文章索引(Catalog) 阅读全文

SQL Server datetime数据类型设计、优化误区

2010-11-26 10:58 by 听风吹雨, 19054 阅读, 收藏, 编辑
摘要: 一、场景在SQL Server 2005中,有一个表TestDatetime,其中Dates这个字段的数据类型是datetime,如果你看到表的记录如下图所示,你最先想到的是什么呢?(图1:数据列表)你看到这些数据,是不是觉得这样的设计既浪费了存储空间,又使得这个列的索引增大,查询起来更慢,你也想使用一些其它的数据类型来代替这个datetime吧? 其实大家都是这么想的,这个方向是100%正确的,但是在写这篇文章以前,我进入了两个误区:(如果你中了下面的两个误区,那么请你看看这篇文章吧。)误区一: 把Dates字段的datetime数据类型换成smalldatetime,这样数据就由:‘200 阅读全文

SQL Server数据库服务器高性能设置

2010-11-16 11:38 by 听风吹雨, 11111 阅读, 收藏, 编辑
摘要: 数据库服务器主要用于存储、查询、检索企业内部的信息,因此需要搭配专用的数据库系统,对服务器的兼容性、可靠性和稳定性等方面都有很高的要求。 下面是进行笼统的技术点说明,为的是让大家有一个整体的概念,如果想深入可以逐个击破; 希望大家能一起补充完善。一、服务器规划:1. 使用64位的操作系统,最好是2008的;(Windows Server 2008 64位)2. 使用64位的数据库程序,最好是2008的;(SQL Server 2008 64位)3. 使用千兆网卡;4. 使用硬RAID5;5. 使用64K的簇大小;6. LUN0用作系统盘,LUN1用作程序(主要是数据库程序)安装盘,LUN2.. 阅读全文

SQL Server Url正则表达式 内存常驻 完美解决方案

2010-07-31 04:12 by 听风吹雨, 3254 阅读, 收藏, 编辑
摘要: 在使用SQL Server2005扩展函数进行性能优化已经提到过把SQL Server中的表装载到内存中,通常这样做的目的是让频繁的表查询能通过在内存中查找来优化数据库性能,从而减少表的查询,减少IO方面的消耗。 这篇文章的目的就是为了解决使用SQL Server2005扩展函数进行性能优化中表记录更新导致函数返回结果有误的问题。产生这个问题的原因是:如果表更新了,而程序已经把整个表加载到内存了,所以会导致调用函数时返回的结果有误。我们需要重新注册函数,如果不重新注册函数,那么就需要数据库重启服务了,因为那个程序集是在服务启动的时候就初始化了。 上面这个问题的解决方案就是: 在表中创建一个.. 阅读全文

使用SQL Server 扩展函数进行性能优化

2010-05-26 21:55 by 听风吹雨, 5195 阅读, 收藏, 编辑
摘要: SQL Server2005扩展函数已经不是一件什么新鲜的事了,但是我看网上的大部分都是说聚合函数,例子也比较浅,那么这里就讲讲我运用扩展函数来优化数据库性能的例子,希望和大家一起分享这个经验。如果你还不知道什么是SQLCLR,那么你可以参考:SQL Server扩展函数的基本概念。需求说明大家在使用SQL Server开发的时候一定会遇到这样的需求,那就是通过Table_Name1表的两个字段Column1、Column2来查询在Table_Name2表中符合这两个条件的记录 阅读全文

SQL Server扩展函数的基本概念

2010-05-26 19:57 by 听风吹雨, 4232 阅读, 收藏, 编辑
摘要: 什么是SQL Server扩展函数呢?它实际上就是把C#或VB.NET的代码拿到SQL Server上去执行。反过来思考,那就是当你想对表数据进行比较复杂的逻辑处理时,写SQL又太麻烦,那么你就可以是否可以通过SQLCLR来解决这个问题了。下面是我摘自wikipedia对SQLCLR的解释。SQL CLR(SQL Common Language Runtime) 是自 SQL Server 2005 才出现的新功能,它将.NET Framework中的CLR服务注入到 SQL Server 中,让 SQL Server 阅读全文

SQL Server 全文索引的硬伤

2010-05-13 21:10 by 听风吹雨, 25087 阅读, 收藏, 编辑
摘要: 本文关键字:SQL Server全文索引、CONTAINS、FREETEXT、CONTAINSTABLE、FREETEXTTABLE等谓词。想象这样一个场景:在DataBase_name.dbo.Table_name中有一个名为Title(标题)和Contents(内容)的字段,现在需要查询在Title或者Contents中包括“qq”字符的所有记录。面对这样的一个场景,我们通常都会写这样一个脚本:SELECT * FROM DataBase_name.dbo.Table_name WHERE Title LIKE '%qq%' OR Contents LIKE '%q 阅读全文

SQL Server 空间换时间的数据库设计

2010-03-30 11:45 by 听风吹雨, 5626 阅读, 收藏, 编辑
摘要: 我们的系统中很常会用到SMS、Email等的发送,在我们的设计中通常会创建一个Tb_outbox表,当产生数据时,插入到Tb_outbox表,由定时器去读取Tb_outbox的数据进行发送,发送完了再修改Tb_outbox的发送状态。是的,这就是通常的做法,但是当我们的SMS、Email的发送频率和数量足够大的时候,我们的系统就会出现性能、表被锁等问题。那我们如何是好呢? 下面的设计的一个思想就是如标题所述:空间换时间。就个人而言,我感觉这个描述更加贴切:对象的职责分离,把Insert、U 阅读全文

SQL Server 索引中include的魅力(具有包含性列的索引)

2010-01-11 20:44 by 听风吹雨, 43189 阅读, 收藏, 编辑
摘要: 开文之前首先要讲讲几个概念 【覆盖查询】 当索引包含查询引用的所有列时,它通常称为“覆盖查询”。 【索引覆盖】 如果返回的数据列就包含于索引的键值中,或者包含于索引的键值+聚集索引的键值中,那么就不会发生Bookup Lookup,因为找到索引项,就已经找到所需的数据了,没有必要再到数据行去找了。这种情况,叫做索引覆盖; 【复合索引】 和复合索引相对的就是单一索引了,就是索引只包含一个字段,所以复合索引就是包含两个或者多个字段的索引 阅读全文