随笔分类 - Sql Server
摘要:前言 经过前几篇的分析,其实大体已经初窥到SQL Server统计信息的重要性了,所以本篇就要祭出这个神器了。 该篇内容会很长,坐好板凳,瓜子零食之类... 不废话,进正题 技术准备 数据库版本为SQL Server2008R2,利用微软的以前的案例库(Northwind)进行分析,部分内容也会应用
阅读全文
摘要:前言 上一篇我们分析了查询优化器的工作方式,其中包括:查询优化器的详细运行步骤、筛选条件分析、索引项优化等信息。 本篇我们分析在我们运行的过程中几个关键指标值的检测。 通过这些指标值来分析语句的运行问题,并且分析其优化方式。 通过本篇我们可以学习到调优中经常利用的几个利器! 废话少说,开始本篇的正题
阅读全文
摘要:前言 前面我们的几篇文章介绍了一系列关于运算符的基础介绍,以及各个运算符的优化方式和技巧。其中涵盖:查看执行计划的方式、几种数据集常用的连接方式、联合运算符方式、并行运算符等一系列的我们常见的运算符。有兴趣的童鞋可以点击查看。 本篇介绍在SQL Server中查询优化器的工作方式,也就是一个好的执行
阅读全文
摘要:前言 前面我们的几篇文章介绍了一系列关于运算符的介绍,以及各个运算符的优化方式和技巧。其中涵盖:查看执行计划的方式、几种数据集常用的连接方式、联合运算符方式、并行运算符等一系列的我们常见的运算符。有兴趣的童鞋可以点击查看。 本篇我们介绍关于子查询语句的一系列内容,子查询一般是我们形成复杂查询的一些基
阅读全文
摘要:前言 上几篇文章我们介绍了如何查看查询计划、常用运算符的介绍、并行运算的方式,有兴趣的可以点击查看。 本篇将分析在SQL Server中,如何利用先有索引项进行查询性能优化,通过了解这些索引项的应用方式可以指导我们如何建立索引、调整我们的查询语句,达到性能优化的目的。 闲言少叙,进入本篇的正题。 技
阅读全文
摘要:前言 上一篇文章我们介绍了查看查询计划的并行运行方式。 本篇我们接着分析SQL Server的并行运算。 闲言少叙,直接进入本篇的正题。 技术准备 同前几篇一样,基于SQL Server2008R2版本,利用微软的一个更简洁的案例库(Northwind)进行解析。 内容 文章开始前,我们先来回顾上一
阅读全文
摘要:前言 上三篇文章我们介绍了查看查询计划的方式,以及一些常用的连接运算符、联合运算符的优化技巧。 本篇我们分析SQL Server的并行运算,作为多核计算机盛行的今天,SQL Server也会适时调整自己的查询计划,来适应硬件资源的扩展,充分利用硬件资源,最大限度的提高性能。 闲言少叙,直接进入本篇的
阅读全文
摘要:前言 上两篇文章我们介绍了查看查询计划的方式,以及一些常用的连接运算符的优化技巧,本篇我们总结联合运算符的使用方式和优化技巧。 废话少说,直接进入本篇的主题。 技术准备 基于SQL Server2008R2版本,利用微软的一个更简洁的案例库(Northwind)进行解析。 一、联合运算符 所谓的联合
阅读全文
摘要:前言 上一篇我们介绍了如何查看查询计划,本篇将介绍在我们查看的查询计划时的分析技巧,以及几种我们常用的运算符优化技巧,同样侧重基础知识的掌握。 通过本篇可以了解我们平常所写的T-SQL语句,在SQL Server数据库系统中是如何分解执行的,数据结果如何通过各个运算符组织形成的。 技术准备 基于SQ
阅读全文
摘要:前言 关于SQL Server调优系列是一个庞大的内容体系,非一言两语能够分析清楚,本篇先就在SQL 调优中所最常用的查询计划进行解析,力图做好基础的掌握,夯实基本功!而后再谈谈整体的语句调优。 通过本篇了解如何阅读和理解查询计划、并且列举一系列最常用的查询执行运算符。 技术准备 基于SQL Ser
阅读全文
摘要:需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等。如果发生异常,需要提前预警的,通知形式一般为发邮件告知。 在所有的自检流程中最基础的一个就是磁盘剩余空间检测。作为一个高效的DBA不可能每天都要上生产机上查看磁盘剩余或者直到磁盘无剩余空间报错后才采取扩容措施。
阅读全文
摘要:需求描述 在生产环境中,很多情况下需要采集数据,用以定位问题或者形成基线。 关于SQL Server中的数据采集有着很多种的解决思路,可以采用Trace、Profile、SQLdiag、扩展事件等诸多方案。 几种方案各有利弊,其中从SQL Server2012版本开始,微软的开始各种整合这些采集方案
阅读全文
摘要:什么是表分区 一般情况下,我们建立数据库表时,表数据都存放在一个文件里。 但是如果是分区表的话,表数据就会按照你指定的规则分放到不同的文件里,把一个大的数据文件拆分为多个小文件,还可以把这些小文件放在不同的磁盘下由多个cpu进行处理。这样文件的大小随着拆分而减小,还得到硬件系统的加强,自然对我们操作
阅读全文
摘要:了解事务和锁 事务:保持逻辑数据一致性与可恢复性,必不可少的利器。 锁:多用户访问同一数据库资源时,对访问的先后次序权限管理的一种机制,没有他事务或许将会一塌糊涂,不能保证数据的安全正确读写。 死锁:是数据库性能的重量级杀手之一,而死锁却是不同事务之间抢占数据资源造成的。 不懂的听上去,挺神奇的,懂
阅读全文
摘要:DECLARE @name VARCHAR(50) --声明游标 DECLARE cursor_VAA1 CURSOR FOR SELECT VAA05 FROM VAA1 --打开游标 OPEN cursor_VAA1 --取第一条 FETCH NEXT FROM cursor_VAA1 INTO
阅读全文
摘要:在SqlServer中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。 *[DataBaseName]要压缩日志的数据库名称. 设置数据库模式为简单模式 查询日志文件的 FiledId 将日志的 FiledId 填写为下面语句括号中的 第一个参数,其中第二个参数是指将日志压缩到多少兆
阅读全文
摘要:表中主键必须为标识列,[ID] int IDENTITY (1,1) 1.分页方案一:(利用Not In和SELECT TOP分页)语句形式: SELECT TOP 10 *FROM TestTableWHERE (ID NOT IN (SELECT TOP 20 id FROM TestTable
阅读全文
摘要:触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。 Ø 什么是触发器 触发器对表进行插入、更新、删除的时候会自动执行的特殊存储过程。触发器一般用在check约束更加复杂的约束上面。触发器和普通的存储
阅读全文
摘要:1、创建带 Try Catch 的存储过程模板 Copy下面的代码,然后新建查询,就可以写sql语句,执行完后,一个你自己的存储过程就建立好了! 2、创建带事务的存储过程模板 将带 Try Catch 的存储过程的模板中加入了事务的控制 3、循环模板 在存储过程中,经常会生成一些临时表,然后循环临时
阅读全文
摘要:简介 Merge关键字是一个神奇的DML关键字。它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句。MSDN对于Merge的解释非常的短小精悍:”根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在另一个表中找到的差异在一个表中插入
阅读全文