随笔分类 - SQL
摘要:SQL 生成日历 create PROCEDURE GetMonthTable ( @Date datetime ) AS BEGIN DECLARE @Start DATETIME,@End DATETIME DECLARE @Index INT SET @Start = DATEADD(MONT
阅读全文
摘要:create table #EnterPrise( Department nvarchar(50),--部门名称 ParentDept nvarchar(50),--上级部门 DepartManage nvarchar(30)--部门经理) insert into #EnterPrise selec
阅读全文
摘要:在做数据统计的时候,行转列,列转行是经常碰到的问题。case when方式太麻烦了,而且可扩展性不强,可以使用 PIVOT,UNPIVOT比较快速实现行转列,列转行,而且可扩展性强 一、行转列 1、测试数据准备 CREATE TABLE [StudentScores] ( [UserName] NV
阅读全文
摘要:partition by关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partition by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组,分区函数一般与排名函数一起使用。 准备测试数据: create t
阅读全文
摘要:问题 在删除sql server中某数据库下的用户时报15138错误,见下图 解决 可用下述sql代码检查该用户的架构信息,然后逐一修正 SELECT s.name FROM sys.schemas s WHERE s.principal_id = USER_ID('hzladmin'); 从上图可
阅读全文
摘要:介绍 经常会有人问profile工具该怎么使用?有没有方法获取性能差的sql的问题。自从转mysql我自己也差不多2年没有使用profile,忽然profile变得有点生疏不得不重新熟悉一下。这篇文章主要对profile工具做一个详细的介绍;包括工具的用途和使用方法等。profile是SQLServ
阅读全文
摘要:前言 上几篇文章我们介绍了如何查看查询计划、常用运算符的介绍、并行运算的方式,有兴趣的可以点击查看。 本篇将分析在SQL Server中,如何利用先有索引项进行查询性能优化,通过了解这些索引项的应用方式可以指导我们如何建立索引、调整我们的查询语句,达到性能优化的目的。 闲言少叙,进入本篇的正题。 技
阅读全文
摘要:前言 上三篇文章我们介绍了查看查询计划的方式,以及一些常用的连接运算符、联合运算符的优化技巧。 本篇我们分析SQL Server的并行运算,作为多核计算机盛行的今天,SQL Server也会适时调整自己的查询计划,来适应硬件资源的扩展,充分利用硬件资源,最大限度的提高性能。 闲言少叙,直接进入本篇的
阅读全文
摘要:前言 上一篇文章我们介绍了查看查询计划的并行运行方式。 本篇我们接着分析SQL Server的并行运算。 闲言少叙,直接进入本篇的正题。 技术准备 同前几篇一样,基于SQL Server2008R2版本,利用微软的一个更简洁的案例库(Northwind)进行解析。 内容 文章开始前,我们先来回顾上一
阅读全文
摘要:前言 上一篇我们介绍了如何查看查询计划,本篇将介绍在我们查看的查询计划时的分析技巧,以及几种我们常用的运算符优化技巧,同样侧重基础知识的掌握。 通过本篇可以了解我们平常所写的T-SQL语句,在SQL Server数据库系统中是如何分解执行的,数据结果如何通过各个运算符组织形成的。 技术准备 基于SQ
阅读全文
摘要:前言 上两篇文章我们介绍了查看查询计划的方式,以及一些常用的连接运算符的优化技巧,本篇我们总结联合运算符的使用方式和优化技巧。 废话少说,直接进入本篇的主题。 技术准备 基于SQL Server2008R2版本,利用微软的一个更简洁的案例库(Northwind)进行解析。 一、联合运算符 所谓的联合
阅读全文
摘要:前言 关于SQL Server调优系列是一个庞大的内容体系,非一言两语能够分析清楚,本篇先就在SQL 调优中所最常用的查询计划进行解析,力图做好基础的掌握,夯实基本功!而后再谈谈整体的语句调优。 通过本篇了解如何阅读和理解查询计划、并且列举一系列最常用的查询执行运算符。 技术准备 基于SQL Ser
阅读全文
摘要:前言 一提到跟踪俩字,很多人想到警匪片中的场景,同样在我们的SQL Server数据库中“跟踪”也是无处不在的,如果我们利用好了跟踪技巧,就可以针对某些特定的场景做定向分析,找出充足的证据来破案。 简单的举几个应用场景: 在线生产库为何突然宕机?数百张数据表为何不翼而飞?刚打好补丁的系统为何屡遭黑手
阅读全文
摘要:当前时间周的起始日期(以周一为例)select DATEADD(week,DATEDIFF(week,0,getdate()),0)上周起始:select dateadd(week,-1,DATEADD(week,DATEDIFF(week,0,getdate()),0))上上周起始:select
阅读全文
摘要:DECLARE @startDate1 DATE;DECLARE @startDate DATETIME;SET @startDate1=GETDATE();SELECT @startDate=DATEADD(DAY,-1,@startDate1); DECLARE @endDate DATETIM
阅读全文
摘要:select [name] ,create_date ,modify_date FROM sys.all_objects where type_desc = N'SQL_STORED_PROCEDURE'
阅读全文
摘要:在SQL server的性能优化过程中,TSQL的语句优化是很重要的一环。当您使用各种手段找出系统最需要优化的语句后,应该如何对该语句进行优化呢?下面列出一些TSQL语句优化的常见技巧。1.语句的执行计划分析首先要对该语句的执行计划(execution plan)进行分析,找出语句运行慢的原因。比如...
阅读全文