随笔分类 - T-SQL
This is for T-SQL
摘要:监控前言 上一节我们提到了MSSQL的基于SQL Event的监控,但是有些时候我们需要更加详细、适用于调优排错的监控。SQL Server内部运行的可见性是的查询调整、优化和综合排查成为可能!这一节主要和大家说说SQL Server跟踪(SQL Server Profile)的一些监控方式和途径。 使用场景 记得某次给一家公司调优的时候,负责人发给我一堆业务的T-SQL脚本,我面对海量脚本还是从容,虽然不了解内部复杂的业务,但是我们得专注问题的关键 “慢”,我们根据查询的“慢”把他们筛选出来,一一调式优化,不就迅速解决问题吗?三天后,负责人含泪握着我的手,哥们辛苦了,查询响应得到了质的改善。
阅读全文
摘要:前端时间给别人做迁移数据库时候,遇到一些问题.大致是,如果备份的数据库存在EXTERNAL_ACCESS 和UNSAFE的程序集,那么在还原的时候程序集会出现一些奇怪的错误: 消息 10314,级别 16,状态 11,第 1 行 在尝试加载程序集 ID 65536 时 Microsoft .NET Framework 出错。服务器可能资源不足,或者不信任该程序集,因为它的 PERMISSION_SET 设置为 EXTERNAL_ACCESS 或 UNSAFE。请重新运行查询,或检查有关的文档了解如何解决程序集信任问题。有关此错误的详细信息: System.IO.FileLoadExcepti
阅读全文
摘要:SQL Server 2008 复制 分区SWITCH清理数据场景:某种特定业务下,我们的部分业务数据可能只会保留比较短的时间,用来做临时处理。因为考虑高可用的特性,可能会利用SQL Server的复制组件复制这种数据到另外的 类似前端,查询中心等数据库服务器,创建一个冗余副本。复制组件标记事务日志,追踪所有的Update,Insert,Delete操作。可是如果不定期清理这种表,那么在一个快速增长的环境下,表变的臃肿不堪,不仅仅浪费磁盘空间,而且给性能带来了负面影响。如:A临时数据中心 ---同步--B 查询/其他业务中心,副本 保证A不可用的时候,B的业务不依赖于A服务器,利用A同步过来
阅读全文
摘要:SQL Server 2008 安全性——透明数据加密(TDE) 在SQL Server 2005的安全性来说,做的不够好,比如EKM这种可扩展的外部密钥管理就不支持,包括对数据库文件本身的加密。 SQLServer 2008中增加了透明数据加密TDE,TDE使用DEK 数据库加密密钥对数据文件进行加密,包括IO操作,加入内存等都是存在加密和解密操作的。DEK本身是受master数据库下的证书保护的,当然也支持EKM模块包含。我们对数据文件可以使用标准的DES和AES加密。 在某些特定场合,比如我们的服务器发生盗窃行为的时候,一些关键性数据库不被恶意附加挖掘其中的价值数据,除了使用硬件级别的文
阅读全文
摘要:一、前言在配置数据库邮件之前,先和大家说说数据库邮件体系,首先我们知道的,msdb系统数据库保存有关Job,DatabaseMail,Nodifyication等等之类信息的.MSSQL2005的邮件功能,使用了ServicesBroker进行了队列处理.然后使用外部进程,这个可以在配置成功Mail以后查看任务管理器中的进程.另外的, sp_send_dbmail是手动发送邮件的存储过程,我们必须显示的赋值才能发送,等配置完以后和大家说说这个存储过程.二、配置.首先,因为邮件是基于servicesbroker发送的,我们必须确保msdb数据库打开了service broker 功能.[代码]下
阅读全文
摘要:MSSQL数据库邮件系列一(环境搭建)一、前言数据库邮件是一种通过 Microsoft SQL Server 2005 Database Engine发送电子邮件的企业解决方案。比如当我在家里睡觉的时候,我也想密切关注咱公司数据库咋样了,于是我笔记本冒着被烧坏的风险,开着监听者服务器给我发来的net send或者是邮件,当一有邮件的时候,Gmail有声音提示的.然后火速看下是不是出啥问题了,当然也可以使用数据库邮件在MSSQL中像我们的客户发送一些广告或者其他什么的.也不用担心上层开发群发系统的开发时间了,减少了开发成本,而且数据库邮件是基于队列概念的,所以未发送的邮件是在队列中,等待下一次的
阅读全文
摘要:总结了一些SQL Server常用的备份还原T-SQL 语句,代码基本是支持2005/2008的,不过部分功能需要企业版数据库:[代码][代码][代码][代码][代码][代码][代码][代码][代码][代码][代码][代码][代码]其他还有很多小细节东西,大家自己去查看相应的资料吧.(已经更新了快照备份)PS:下载/Files/bhtfg538/sql.rar
阅读全文
摘要:Inside T-SQL Index(2)一、前言对T-SQL索引原理级别的知识不熟悉的朋友可以先看看http://www.cnblogs.com/bhtfg538/archive/2009/08/31/1557225.html,那么本文主要在第一篇文章讲述的知识基础上进一步学习有关Index的DDL语句.所谓信理论+实践,得永生.二、创建索引记得我刚开始学数据库的时候,一直以为主键就是聚集索引,就会在ID上建立聚集索引,后来才发现自己的无知,只不过是MSSQL会在创建逐渐的时候,默认创建聚集索引在主键上.我们来看看几种创建主键以及索引的方式:USE tempdb;GOIF OBJECT_ID
阅读全文
摘要:Inside T-SQL Index (1)一、前言关于索引的设计优化等文章,网上不计其数,大都是各自根据自己的经验或心得写出的一些建议,本文不提供任何产品环境下的建议,因为”变”才是Programming的本质,所以我只提供一些参考.毕竟每个数据库实例处的环境都不同.博友们认真读哦,呵呵.本文都是依据SQL Server 2005为大前提背景的.二、了解索引索引是与表或视图关联的磁盘上结构,可以加快从表或视图中检索行的速度。索引包含由表或视图中的一列或多列生成的键。这些键存储在一个结构(B 树)中,使 SQL Server 可以快速有效地查找与键值关联的行。 就SQL Server索引大类型
阅读全文
摘要:你真的了解SQL Server XML吗?---- (一xml数据类型)一、排版之前有博友一直说我的排版很非主流,所以重新约定下:a) 红色(章节)b) 绿色(书籍)c) 蓝色(超链接)d) 蓝色(重要内容,关键性东西)二、前言:关系数据库一直给我们行和列的影响,通过扩展无非就是添加行记录,然后也有添加列.至于分表扩展等我就不多说了.XML作为一种数据的载体,是否适用于关系型数据库呢?我不敢定论,但是通过一系列项目的经验也让我感受到XML在关系数据库中的魅力.当然也有人第一接触XML在SQL Server的支持时候大吃一惊,为什么我们需要呢?通过一些资料我们也可以看看高人们对XML在关系型数据
阅读全文
摘要:数据库构思与设计规范一、数据库模型构思(数据库设计步骤)a) 数据库模型理解数据库模型设计是编写软件就像建筑结构对于工程师们。工程师们学习所有的设计艺术比如浴室应该放哪和有多少个浴室,以及是否有浴室。如果这些结构设计留给土木工程师,他们也许会忘记这些浴室或者把问题遗留给居住的人们。这就非常类似数据库结构和与开发人员之间设计问题。 土木工程师们确保我们的建筑上的砖头不会砸到我们,而建筑师们让建筑更加的适合居住。是什么导致我们在软件,数据库建模中不得不设计数据库模 型。本质上来说,设计过程中涉及具体的对象构建前把我们的思路写在纸上,或者可能移动一些零件和部件以获取他们期待的设计。而一般的土木工程师
阅读全文
摘要:范式 就关系数据库而言,一贯认为:从其他元素中消除数据冗余问题,去除重复往往以减少冗余, 从特定的表中最小化冗余意味着摆脱不必要的数据。商业上来讲,主要目标是通常保存空间和组织的数据可用性和可管理性,而不牺牲性能。此外,要求强烈繁忙的应用程序和最终用户的需要往往需要以多种方式打破规则的范式,以满足性能要求。第三范式以外的范式常常被忽视和有时甚至是第三范式本身就是多余的。范式是一个升级的过程,每个上层的模式都是建立在下一级范式之上的。消除数据冗余的影响如下: ❑物理空间需要存储的数据减少。 ❑数据变得更有组织。 ❑范式化允许修改少量的数据(即单记录)。换言之,一个表的具体字段记录更新时,会影响其
阅读全文
摘要:事务与并发 开场白还是要来下的,又过了一年,很久没有和cnblogs朋友见面了。我还看到了我上几篇MSSQL的回复里面一直说期待我的下一个好文,唉!先谢罪了,太久没发表东东了。主要是因为有点忙,加上一回去就是学习,所以没时间给大家整理资料。最近因为要给公司培训一些东西,所以以后也会出一些文章的,所谓浓缩就是精华,所以大家就期待吧。 其实写文章总结也是对自己知识的一些反复,总结的时候可以查漏补缺,也可以给各位博友们提供一些看法和思路。我记得看过一篇架构师的曲线图里面也讲到了“写文章”总结的重要性。 今天开场白有点多,大家耐心点。呵呵,其实一直想写一个关于如何学习东西的文章,只有下次了,好了,那么
阅读全文
摘要:MS SQL Server 2005 物理查询处理中的各个阶段(二)大家好,我是浪客,和大家分享一些最近我从《Microsoft SQL SERVER 2005技术内幕:T-SQL查询》书中的心得,终于出“二“了,回应很多朋友的需求,今天抽空写了物理查询阶段,上文中你真的了解“T-SQL逻辑查询吗?”提到的这种搜索方式,也许很多人不明白(包括我,我看之前简直感到诧异),很多都想 如果表的记录有10000000~!#!@条,那每次的CROSS JOIN 将会长生 m*n的记录,我们就假设是1W条 1w的平方还是有点点恐怖的,所以实际存储引擎并不是如此查询的,但是讲清楚 逻辑查询很重要,因为那是物
阅读全文
摘要:MS SQL Server 2005 逻辑查询处理中的各个阶段(一)大家好,我是浪客,和大家分享一些最近我从《Microsoft SQL SERVER 2005技术内幕:T-SQL查询》书中的心得,时间仓促,有错误大家尽管提出来。先来看个查询:(8) SELECT (9) DISTINCT (11) TOP_specification select_list(1) FROM left_table(3) join_type JOIN right_table(2) ON join_codition(4) WHERE where_condition(5) GROUP BY
阅读全文