随笔分类 -  SQL Server

摘要:和压缩(Compression)相比,数据库分区(Partition)的操作更为复杂繁琐。而且与Compression一次操作,终身保持不同,分区是一项需要长期维护周期变更的操作。分区的意义在于将大数据从物理上切割为几个相互独立的小部分,从而在查询时只取出其中一个或几个分区,减少影响的数据;另外对于置于不同文件组的分区,并行查询的性能也要高于对整个表的查询性能。事实上,在SQL Server 20... 阅读全文
posted @ 2010-07-08 21:13 温景良(Jason) 阅读(356) 评论(0) 推荐(0) 编辑
摘要:Sql Server数据库的一大优势,就是具有富UI的管理和调试工具,这点,绝对是优于ORACLE和其他的大中型数据库的。Sql Server的众多工具中,对于开发人员和DBA来讲,非常重要的一个,就是Sql Profiler (事件探查器) 了。Sql Server中执行的每个一个动作,都可以在Sql Profiler里看的一清二楚,这对于性能调优,后期维护等等是非常有帮助的。但是,问题来了,在... 阅读全文
posted @ 2010-07-08 21:12 温景良(Jason) 阅读(813) 评论(0) 推荐(0) 编辑
摘要:原文地址:http://www.bhcode.net/download/690.htmlLog Explorer主要用于对MSSQLServer的事物分析和数据恢复。你可以浏览日志、导出数据、恢复被修改或者删除的数据(包括执行过update,delete,drop和truncate语句的表格)。一旦由于系统故障或者人为因素导致数据丢失,它能够提供在线快速的数据恢复,最大程度上保证恢复期间的其他事物... 阅读全文
posted @ 2010-07-08 21:09 温景良(Jason) 阅读(830) 评论(0) 推荐(0) 编辑
摘要:1.SQL Server系统数据库介绍SQL Server有四个重要的系统级数据库:master,model,msdb,tempdb.master:记录SQL Server系统的所有系统级信息,包括实例范围的元数据,端点,链接服务器和系统配置设置,还记录其他数据库是否存在以及这些数据问文件的位置等等.如果master不可用,数据库将不能启动.model:用在SQL Server 实例上创建的所有数... 阅读全文
posted @ 2010-06-29 13:47 温景良(Jason) 阅读(702) 评论(0) 推荐(0) 编辑
摘要:摘要:我们今天主要向大家描述的是巧妙优化SQL Server数据库的几种好用方法,以下就是文章的主要内容描述,望大家会有所收获。 此文章主要向大家讲述的是巧妙优化SQL Server数据库的几种方法,在实际操作中导致查询速度慢的原因有很多,其中最为常见有以下的几种:没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)。I/O吞吐量小,形成了瓶颈效应。没有创建计算列导致查询不优化SQ... 阅读全文
posted @ 2010-06-29 13:44 温景良(Jason) 阅读(333) 评论(0) 推荐(0) 编辑
摘要:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--declare@idintdeclare@typecharacter(2)declare@pagesintdeclare@dbnamesysnamedeclare@dbsizedec(15,0)dec... 阅读全文
posted @ 2010-06-14 10:32 温景良(Jason) 阅读(1083) 评论(1) 推荐(0) 编辑
摘要:/*--2010-05-27(东升)SQL SERVER 2008 新数据库类型hierarchyid SQL SERVER 2008引入了新的hierarchyid数据类型,可以用它来做本地存储并且在树层次结构中管理其位置.只用这个函数能简洁地表示层次结构中的位置.该函数提供的一些内置的函数方法可以操作和遍历层次结构,使得存储和查询分层数据更为容易,而不需要像那样通过CTE递归来获得. 该类型... 阅读全文
posted @ 2010-06-01 09:24 温景良(Jason) 阅读(780) 评论(0) 推荐(0) 编辑
摘要:Transact-SQL提供了4个排名函数: RANK(),DENSE_RANK(),ROW_NUMBER(),NTILE()下面是对这4个函数的解释:RANK() 返回结果集的分区内每行的排名。行的排名是相关行之前的排名数加一。如果两个或多个行与一个排名关联,则每个关联行将得到相同的排名。例如,如果两位销售员具有相同的SalesYTD值,则他们将并列第一。由于已有两行排名在前,所以具有下一个最大... 阅读全文
posted @ 2010-01-18 10:40 温景良(Jason) 阅读(332) 评论(0) 推荐(0) 编辑
摘要:CTE递归原理:递归CTE是由两个最小查询构建的.第一个是定位成员(Anchor Member,AM),它是一个非递归查询,第二个是递归成员(Recursive Member,RM),它是递归查询.在CTE括号中(AS 子句之后),定义独立查询或引用回相同CTE的查询,AM与RM由UNION ALL语句分隔.AM紧被调用一次,RM将被重复调用,直到查询不在返回数据行为止.可以使用UNION或UNI... 阅读全文
posted @ 2010-01-18 10:13 温景良(Jason) 阅读(7178) 评论(0) 推荐(2) 编辑
摘要:之前曾有一篇POST是关于用CTE实现Split,这种方法已经比传统的方法高效了。今天我们就这个方法与CLR实现的Split做比较。在CLR实现Split函数的确很简单,dotnet framework本身就有这个function了。 我们新建一个c#-数据库工程,然后建立一个用户自定义函数,Code像这样: 1: /// <summary> 2: /// SQLs the array... 阅读全文
posted @ 2010-01-09 08:23 温景良(Jason) 阅读(552) 评论(0) 推荐(0) 编辑
摘要:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--DECLARE@SqlNVARCHAR(MAX)DECLARE@ExecSqlNVARCHAR(MAX)--获得需要扩展的列明SELECT@Sql=ISNULL(@Sql+'],[','')+Name... 阅读全文
posted @ 2009-12-10 15:55 温景良(Jason) 阅读(183) 评论(0) 推荐(0) 编辑
摘要:SQL SERVER 2005中新增加了两个关系运算符 PIVOT/ UNPIVOT,能够实现表中的列转换到行,以及行到列的转换工作。举例,还是先创建测试数据表CREATETABLEsales.salesByMonth(yearchar(4),monthchar(3),amountmoney,PRIMARYKEY(year,month))INSERTINTOsales.salesByMonth(y... 阅读全文
posted @ 2009-12-09 09:08 温景良(Jason) 阅读(625) 评论(0) 推荐(0) 编辑
摘要:/*标题:普通行列转换(version 2.0)说明:普通行列转换(version 1.0)仅针对sql server 2000提供静态和动态写法,version 2.0增加sql server 2005的有关写法。问题:假设有张学生成绩表(tb)如下:姓名 课程 分数张三 语文 74张三 数学 83张三 物理 93李四 语文 74李四 数学 84李四 物理 94想变成(得到如下结果): 姓名 语... 阅读全文
posted @ 2009-12-09 09:00 温景良(Jason) 阅读(417) 评论(0) 推荐(0) 编辑
摘要:自从看《学技术的不能自废武功》这篇文章后,我深有感触,于是对自己以前学过的知识又重新温习了一次,结果终于发现了一些新的感悟,现将其感悟发表,于大家共勉:关于 sql 行转列的感悟(表1)要将其转变为:(表2)可以看得出来,表2列是由表1的行数据转化而来的,只有姓名列是表1中的列。一步一步的来嘛,其他的列难搞,如果表2只有1列姓名的话,那么very easy了,不就是一个简单的分组嘛。Select ... 阅读全文
posted @ 2009-12-09 08:52 温景良(Jason) 阅读(271) 评论(0) 推荐(0) 编辑
摘要:一、引言对数据库索引的关注从未淡出我的们的讨论,那么数据库索引是什么样的?聚集索引与非聚集索引有什么不同?希望本文对各位同仁有一定的帮助。有不少存疑的地方,诚心希望各位不吝赐教指正,共同进步。[最近首页之争沸沸扬扬,也不知道这个放在这合适么,苦劳?功劳?……] 二、B-Tree我们常见的数据库系统,其索引使用的数据结构多是B-Tree或者B+Tree。例如,MsSql使用的... 阅读全文
posted @ 2009-12-05 16:50 温景良(Jason) 阅读(267) 评论(0) 推荐(0) 编辑
摘要:今天做项目刚好需要一个获得每个节点的levelno,就想起了sql2005的CTE表达式,试用了一下,效果不错.我的理解CTE是可以复用的虚拟表,它可以实现自递归.参考文章:Sql Server2005 Transact-SQL 新兵器学习总结之-公用表表达式(CTE) [代码] 阅读全文
posted @ 2009-11-12 21:50 温景良(Jason) 阅读(231) 评论(0) 推荐(0) 编辑
摘要:1. 概述1.1. 基本原则以大小写敏感编写SQL语句。尽量使用Unicode 数据类型。优先使用连接代替子查询或嵌套查询。尽量使用参数化SQL查询代替语句拼接SQL查询。禁止使用[拼音]+[英语]的方式来命名SQL对象或变量。尽量使用存储过程代替SQL语句。1.2. 基本规范建议采用Pascal样式或Camel样式命名数据库对象。大写T-SQL语言的所有关键字,谓词和系统函数。2. 命名规范在一... 阅读全文
posted @ 2009-11-09 15:34 温景良(Jason) 阅读(226) 评论(0) 推荐(0) 编辑
摘要:[代码] 阅读全文
posted @ 2009-11-04 15:45 温景良(Jason) 阅读(278) 评论(0) 推荐(0) 编辑
摘要:在以下的文章中,我将以“办公自动化”系统为例,探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页。以下代码说明了我们实例中数据库的“红头文件”一表的部分数据结构:CREATETABLE[dbo].[TGongwen](--TGongwen是红头文件表名[Gid][int]IDENTITY(1,1)NOTNU... 阅读全文
posted @ 2009-10-30 19:32 温景良(Jason) 阅读(444) 评论(0) 推荐(0) 编辑
摘要:1. SQL优化的原则是: 将一次操作需要读取的BLOCK数减到最低,即在最短的时间达到最大的数据吞吐量。 调整不良SQL通常可以从以下几点切入: 检查不良的SQL,考虑其写法是否还有可优化内容 检查子查询 考虑SQL子查询是否可以用简单连接的方式进行重新书写 检查优化索引的使用 考虑数据库的优化器 2. 避免出现SELECT * FROM table 语句,要明确查出的字段。 3.... 阅读全文
posted @ 2009-10-29 23:56 温景良(Jason) 阅读(602) 评论(0) 推荐(0) 编辑