随笔分类 - SQLSERVER基础
摘要:SQL Server表分区的NULL值问题 SQL Server表分区只支持range分区这一种类型,但是本人觉得已经够用了 SQL Server有分区对齐的问题,都是水平切分,允许分区列存在NULL值 这次我们测试SQL Server表分区的分区列的NULL值,究竟NULL值是被存放在哪个区间,以
阅读全文
摘要:恢复SQL Server被误删除的数据(再扩展) 大家对本人之前的文章《恢复SQL Server被误删除的数据》 反应非常热烈,但是文章里的存储过程不能实现对备份出来的日志备份里所删数据的恢复 这个是一个缺陷,本人决定对这个存储过程扩展一下,支持对log backup文件里的delete语句进行恢复
阅读全文
摘要:SQL Server的一个不显眼的备份文件分割功能 当完整备份数据库的时候,我们有时候可能会遇到一种极端情况,比如服务器上C,D,E三个盘符都只剩下5G空间了 但是如果要完整备份业务库需要12G的空间,那么这时候怎么办呢? 另外一个问题是,对于超大型数据库,比如单个数据库达到几十个TB的量级,分割备
阅读全文
摘要:在SQL2008查找某数据库中的列是否存在某个值 --SQL2008查找某数据库中的列是否存在某个值 create proc spFind_Column_In_DB ( @type int,--类型:1为文字类型、2为数值类型 @str nvarchar(100)--需要搜索的名字 ) as --创
阅读全文
摘要:分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tablespaceinfo ( nameinfo VARCHAR(500) , rowsinfo BIG
阅读全文
摘要:从SQLSERVER/MYSQL数据库中随机取一条或者N条记录 很多人都知道使用rand()函数但是怎麽使用可能不是每个人都知道 建立测试表 第一种写法:大家会想到ORDER BY NEWID() 这种写法使用到索引扫描,而且每次select出来的结果都是一样的,都是50条记录 第二种写法: 跟t2
阅读全文
摘要:SQLSERVER DBA容易犯的十个错误翻译自:http://sqlsentry.tv/top-10-administrative-mistakes-on-sql-server/除了排名前十的错误之外,其他排名靠前的错误抛开SQL Server方面的错误,这些错误主要体现在开发或者是设计的时候:1...
阅读全文
摘要:SQLSERVER 里经常看到的CACHE STORES是神马东东?当我们在SSMS里执行下面的SQL语句清空SQLSERVER的缓存的时候,我们会在SQL ERRORLOG里看到一些信息DBCC FREEPROCCACHE大家可以看到cachestore、object plans、sql plan...
阅读全文
摘要:从分析SQLSERVER ERRORLOG查找错误折射出的工作效率问题前几天,在备份某一台服务器上的某一个库的时候遇到问题,数据库80G+,在完整备份的时候,SQLSERVER报错消息 3271,级别 16,状态 1,第 49 行在文件 "E:\DataBase\xxxxxx\FG_xxxxx_Cl...
阅读全文
摘要:不均匀的Windows处理器编组之前写过一篇文章,关于SQLSERVER能识别多少个逻辑CPU的,前些天在论坛里有人问Windows处理器编组是如何划分的??SQLSERVER到底能识别多少个逻辑CPU?在帖子给出了两篇文章,我们现在来看一下http://social.technet.microso...
阅读全文
摘要:试试SQLServer 2014的内存优化表 本文使用SQL Server2014版本进行介绍 SQL Server2014存储引擎:行存储引擎,列存储引擎,内存引擎 在数据库中数据是以表的形式存储,所以存储引擎也可以称为表类型。 SQL Server 2014中的内存引擎(代号为Hekaton)将
阅读全文
摘要:恢复SQL Server被误删除的数据 《恢复SQL Server被误删除的数据(再扩展)》 地址:http://www.cnblogs.com/lyhabc/p/4620764.html 曾经想实现Log Explorer for SQL Server的功能,利用ldf里面的日志来还原误删除的数据
阅读全文
摘要:干货分享:SQLSERVER使用裸设备 这篇文章也适合ORACLE DBA和MYSQL DBA 阅读 裸设备适用于Linux和Windows 在ORACLE和MYSQL里也是支持裸设备的!! 介绍 大家看到这个标题一定是一头雾水吧,裸设备??裸体的设备??太邪恶了o(∩_∩)o 裸设备:有人叫raw
阅读全文
摘要:SQLSERVER truncate table之后是否会重置表的自增值今天清理业务库数据的时候,开发人员说可以使用truncate table把两个表的所有数据清理掉这两个表都有自增ID,都做了表分区,单表200GB,使用SELECT IDENT_CURRENT('')的时候两个表的当前自增值是3000012,这两个表几乎是一模一样的,除了一两个字段不一样我执行两个SQL语句把两个表都truncate掉,然后就忘记了收缩数据库和重置种子值由于分区函数的最后一个值是2000000,那么后插入的数据都会积聚在最后一个文件组1、重置种子值,让数据重新利用第一个文件组2、修改分区方案
阅读全文
摘要:SQLSERVER手动增长日志文件和数据文件手动增长日志文件,实际上就是修改日志文件的大小 size 的单位是MB下面设置日志文件大小是2048MBALTER DATABASE [GPOSDB] MODIFY FILE(name=GPOSDB_Log,size=2048)EXEC sys.[sp_helpdb] @dbname = [GPOSDB] -- sysname--收缩日志文件 USE [GPOSDB] GO ALTER DATABASE [GPOSDB] SET RECOVERY SIMPLE;GO--设置简单恢复模式 DBCC SHRINKFILE (GPOSDB_Log, 1);
阅读全文
摘要:在SSMS里查看TDS数据包内容摘抄自《SQLSERVER2012实施与管理实战指南》要具体查看TDS数据库的内容,我们可以:用NETWORK MONITOR工具来监控TDS数据包的内容或者开启trace flag4052、4055、3605,那么SQLSERVER会把接收到的和发送的TDS数据包在SQLSERVER错误日志里显示。开启这些trace flag会对性能有影响,因此只能在测试环境里开启。用如下命令行启动数据库,随后运行上述查看数据库版本的ADO VBScript脚本sqlservr.exe -c -skatmai -T4052 -T4055 -T3605用命令行不行,只能GUI,
阅读全文
摘要:SQLSERVER PRINT语句的换行想在输出的PRINT语句里面换行,可以这样做/*SQL的换行制表符 CHAR(9)换行符 CHAR(10)回车 CHAR(13)*/PRINT 'Test'+CHAR(13)+'Name'PRINT 'Test'+CHAR(10)+'Age'PRINT 'Test'+CHAR(9)+'Tel'--以文本格式显示结果SELECT 'AAA'+ CHAR(10)+'BBB'--AAA BBBSELECT 'AAA'+
阅读全文
摘要:SQLSERVER中的log block校验(译) 来自:http://sankarreddy.com/2010/03/transaction-log-block-checksum/ 阅读下文之前可以先看这篇文章:再谈SQL Server中日志的的作用 由于格式化磁盘的时候可以选择分配单元512字节
阅读全文
摘要:SQLSERVER将数据移动到另一个文件组之后清空文件组并删除文件组 之前写过一篇文章:SQLSERVER将一个文件组的数据移动到另一个文件组 每个物理文件(数据文件)对应一个文件组的情况(一对一) 如果我把数据移到另一个文件组了,不想要这个已经清空的文件组了,怎麽做? 脚本跟之前那篇文章差不多 1
阅读全文
摘要:SQLSERVER将一个文件组的数据移动到另一个文件组 移动数据: 1、有表分区 2、没有表分区 我这里只讨论没有表分区的情况 例子 比如:你有三个文件组,其中一个是主文件组 测试脚本: 1 USE master 2 GO 3 4 5 IF EXISTS(SELECT * FROM sys.[dat
阅读全文