sql server

SQL Server 在表的字段中使用数据类型来存储特定类型的值,比如数字、日期、或文本。数据类型也会在函数中被使用,比如一些数学表达式。 但是在使用数据类型时有一个问题,就是通常它们之间的相容性不是很好。而类型转换函数可以让它们更好的相容。 虽然有时一些类型可以自动
dexcoder 1年前发布
在SQL Server里,你有没有想进行跨越多个列/纬度的聚集操作,不使用SSAS许可(SQL Server分析服务)。我不是说在生产里使用开发版,也不是说安装盗版SQL Server。 不可能的任务?未必,因为通过SQL Server里所谓的Grouping Sets就可以。在这篇文章里我会给你概括介绍下Groupin
dexcoder 1年前发布
SQL Server定时自动抓取耗时SQL并归档数据脚本分享 第一步建库 USE [master] GO CREATE DATABASE [MonitorElapsedHighSQL] GO 第二步创建sp_who3存储过程 -- http://sqlserverplanet.com/dba/a-better-sp_who2-using-dmvs-sp_who3 USE [MonitorElapsedHighSQL] GO CRE
dexcoder 1年前发布
首先声明,我只是个程序员,不是专业的DBA,以下这篇文章是从一个问题的解决过程去写的,而不是一开始就给大家一个正确的结果,如果文中有不对的地方,请各位数据库大牛给予指正,以便我能够更好的处理此次业务。 项目背景 这是给某数据中心做的一个项目,项目难度之大令人发
dexcoder 1年前发布
需求描述 在生产环境中,很多情况下需要采集数据,用以定位问题或者形成基线。 关于SQL Server中的数据采集有着很多种的解决思路,可以采用Trace、Profile、SQLdiag、扩展事件等诸多方案。 几种方案各有利弊,其中从SQL Server2012版本开始,微软的开始各种整合这些采集方案,
dexcoder 1年前发布
需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等。如果发生异常,需要提前预警的,通知形式一般为发邮件告知。 邮件作为一种非常便利的预警实现方式,在及时性和易用性方面也有着不可替代的优点。 所以,在本篇中将详细的分析下在S
dexcoder 1年前发布
需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等。如果发生异常,需要提前预警的,通知形式一般为发邮件告知。 在上一篇文章中已经分析了SQL SERVER中关于邮件的基础配置,本篇将利用此功能对多台Server的跑批Job进行监控。 本篇实
dexcoder 1年前发布
需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等。如果发生异常,需要提前预警的,通知形式一般为发邮件告知。 在所有的自检流程中最基础的一个就是磁盘剩余空间检测。作为一个高效的DBA不可能每天都要上生产机上查看磁盘剩余或者
dexcoder 1年前发布
需求描述 一般在生产环境中,有时候需要自动的检测指标值状态,如果发生异常,需要提前预警的,比如发邮件告知,本篇就介绍如果通过Power shell实现状态值监控。 监控值范围 根据经验,作为DBA一般需要监控如下系统能行指标。 cpu: \Processor(_Total)\% Processor Time
dexcoder 1年前发布
? ? 这篇博文简单介绍一下在SQL Server中一条Insert语句中用到的锁。 准备数据 ? ? 首先我们建立一张表Table_1,它有两列Id(bigint)和Value(varchar),其中Id建立了主键。 CREATE TABLE [dbo].[Table_2]( [Id] [bigint] NOT NULL, [Value] [nchar](10) NULL, CONS
dexcoder 1年前发布
这段时间谈了很多页,现在我们可以看下这些页在数据文件里是如何组织的。 我们都已经知道,SQL Server把数据文件分成8k的页,页是IO的最小操作单位。SQL Server把数据文件里的第1页标记为0。在所有数据库文件里,前面的9个页面(到页号8)都是如下显示一样的顺序,第10个页(
dexcoder 1年前发布
今天我们来讨论下批量更改映射(Bulk Changed Map:BCM)页,还有大容量日志恢复模式(?bulk logged recovery model)如何运作的。 批量更改映射(Bulk Changed Map:BCM):SQL Server使用BCM页来跟踪自上次完全备份后,被大容量日志操作修改的区。在数据库文件里,BCM页是第
dexcoder 1年前发布
我们已经讨论了各种不同的页,包括数据页、GAM与SGAM页、PFS页,还有IAM页。今天我们来看下差异变更页(Differential Change Map:DCM),还有差异备份(differential backups)。 差异变更页(Differential Change Map:DCM ) :SQL Server使用差异变更页来跟踪自上次完全备
dexcoder 1年前发布
在以前的文章里,我们讨论了数据页,GAM和SGAM,还有PFS页。今天我们一起来讨论下索引分配映射(Index Allocation Map:IAM)页。 在SQL Server 2005和以后的版本里,分配单元(allocation units)以下三个类型: IN_ROW_DATA? 用于存储堆分区或索引分区,即heap和B-tree。 LO
dexcoder 1年前发布
我们已经讨论了GAM与SGAM页,数据页(Data Page) ,现在我们来看下页面自由空间页(Page Free Space (PFS))。 PFS在数据文件里是第2页(页号1,页号从0开始),接在文件头(file header,页号0)后。GAM与SGAM是用来跟踪区分配情况,而PFS页是用来跟踪页分配级别(page leve
dexcoder 1年前发布
我们知道SQL Server在8K 的页里存储数据。分区就是物理上连续的8个页。当我们创建一个数据库,数据文件会被逻辑分为页和区,当用户对象创建时,页会分配给它用来存储数据。GAM(Global Allocation Map)和SGAM(Shared Global Allocation Map)页用来跟踪SQL Server里空间分配
dexcoder 1年前发布
在SQL Server :理解数据页结构我们提到每条记录都有7 bytes的系统行开销,那这个7 bytes行开销到底是一个什么样的结构,我们一起来看下。 数据记录存储我们具体的数据,换句话说,它存在堆表里,或者存在聚集索引的叶子节点。数据记录结构是为了让SQL Server更高效的管理数据
dexcoder 1年前发布
我们都很清楚SQL Server用8KB 的页来存储数据,并且在SQL Server里磁盘 I/O 操作在页级执行。也就是说,SQL Server 读取或写入所有数据页。页有不同的类型,像数据页,GAM,SGAM等。在这文章里,让我们一起来理解下数据页结构。 SQL Server把数据记录存在数据页(Data Page)
dexcoder 1年前发布
一个简单的更新查询 现在应该知道只读取数据的查询生命周期,下一步来认定当你需要更新数据时会发生什么。这个部分通过看一个简单的UPDATE查询,修改刚才例子里读取的数据,来回答。 庆幸的是,直到存取方法(Access Methods)前,更新操作和刚才SELECT语句流程是一模一样的。
dexcoder 1年前发布
计划缓存(Plan Cache) 如果SQL Server已经找到一个好的方式去执行一段代码时,应该把它作为随后的请求重用,因为生成执行计划是耗费时间且资源密集的,这样做是有有意义的。 如果没找到被缓存的计划,然后命令分析器(Command Parser)在T-SQL基础上生成一个查询树(query t
dexcoder 1年前发布