随笔分类 -  SQLSERVER基础

摘要:SQLSERVER NULL和空字符串的区别 使用NULL是否节省空间这里只讨论字符串类型,int、datetime、text这些数据类型就不讨论了,因为是否节省空间是根据数据类型来定的在写这篇文章之前,本人一直以为这个问题很简单的,看一下数据页就行了,但是后来写着写着,也修改了几次发现需要对SQSERVER的数据页内容很熟悉您才能知道SQLSERVER内部空间占用是怎样的,希望大家在继续往下看之前先看一下下面文章在往下看之前请各位先看一下下面的文章char nchar varchar nvarchar的区别 :char nchar varchar nvarchar数据类型所占用长度SQL S 阅读全文
posted @ 2013-09-14 22:39 桦仔 阅读(25480) 评论(5) 推荐(6) 编辑
摘要:SQLSERVER中NULL位图的作用首先感谢宋沄剑提供的文章和sqlskill网站:www.sqlskills.com,看下面文章之前请先看一下下面两篇文章SQL Server误区30日谈-Day6-有关NULL位图的三个误区char nchar varchar nvarchar的区别 在SQLSERVER内部有很多地方都使用到了位图技术,包括执行计划,数据库系统页面,复制,还有这篇文章说到的数据行中的NULL位图执行计划中有位图运算符数据库系统页面有:DCM页面、BCM页面,详细请看:SQL Server 2008 存储结构之DCM、BCM复制:Replication的犄角旮旯(三)--聊 阅读全文
posted @ 2013-09-14 16:25 桦仔 阅读(3893) 评论(4) 推荐(7) 编辑
摘要:SQLSERVER到底能识别多少个逻辑CPU? 前言 在前几天在论坛有人遇到SQLSERVER识别逻辑CPU的问题 帖子地址: http://social.technet.microsoft.com/Forums/zh-CN/f8235ab2-4e46-4aea-81da-699d84b3b57b/ 阅读全文
posted @ 2013-09-12 23:59 桦仔 阅读(11458) 评论(9) 推荐(4) 编辑
摘要:SQLSERVER中的LOB页面简单研究这篇文章和我另一篇文章是相辅相成的,在看《SQLSERVER2012 列存储索引的简单研究和测试》这篇文章之前希望大家先看一下这篇文章o(∩_∩)oSQLSERVER2012 列存储索引的简单研究和测试LOB页面相信大家都不会陌生,LOB专门存储大型对象数据的... 阅读全文
posted @ 2013-08-20 17:35 桦仔 阅读(8656) 评论(0) 推荐(1) 编辑
摘要:在SSMS里批量删除表、存储过程等各种对象以前想找批量删除表或者存储过程的方法,原来SSMS的GUI界面也可以完成请看下图,因为这次出差的时候要删除所有的存储过程,然后重建这些存储过程而表、函数等对象都可以这样删除,Ctrl+A全选,然后按住Ctrl,不选择系统存储过程,右键-》删除就这样就可以啦o(∩_∩)o如果要使用TSQL脚本来删除一个数据库里的所有存储过程,可以这样做 1 USE [pratice] --要删除所有存储过程的数据库 2 GO 3 SELECT * 4 FROM sys.procedures 5 6 DECLARE @sql VARCHAR(4000) 7 S... 阅读全文
posted @ 2013-06-30 15:51 桦仔 阅读(1294) 评论(0) 推荐(0) 编辑
摘要:什么叫即席查询这个仅当是笔记以前一直不知道什么叫即席查询,今天重新看了一遍《SQLSERVER企业级管理平台》,才明白什么叫“即席查询”下面这句话是我个人总结的:什么叫即席查询AD-HOC :以单独的SQL语句的形式执行的查询就是即席查询,比如说:在C#程序里嵌入的SQL语句,或者在SSMS里的新建查询窗口自己键入的SQL代码就是即席查询。而将SQL代码放入存储过程里面,以存储过程或者函数或者触发器来执行的查询就不是即席查询,即席:当场,就是当场去查询,当然,这个当场不是当场写代码的意思啦-------------------------------------------华丽的分割线---- 阅读全文
posted @ 2013-06-16 15:09 桦仔 阅读(8968) 评论(2) 推荐(4) 编辑
摘要:checkpoint出现的时间 (1)显式执行checkpoint语句。用于连接的当前数据库中出现检查点(2)在数据库中执行了最小日志记录操作,例如,使用大容量日志恢复模式的数据库中执行大容量复制操作(3)已经使用ALTER DATABASE添加或删除了数据库文件(4)重启SQLSERVER服务(5 阅读全文
posted @ 2013-06-10 21:13 桦仔 阅读(2709) 评论(0) 推荐(0) 编辑
摘要:SQLSERVER2005的安装目录结构(下)上篇介绍了SQLSERVER在注册表里保存的一些设置,这篇介绍他在你的硬盘里存放了哪些组件和工具带你进入SQLSERVER的世界上篇的地址:http://www.cnblogs.com/lyhabc/archive/2013/05/25/3099164.html在Microsoft SQL Server这个文件夹里面有下面几个文件夹逐个看一下每个文件夹里都有些什么-------------------------------------------------华丽的分割线--------------------------------------- 阅读全文
posted @ 2013-05-26 00:58 桦仔 阅读(15011) 评论(4) 推荐(4) 编辑
摘要:SQLSERVER2005的安装目录结构(上)下篇的地址:http://www.cnblogs.com/lyhabc/archive/2013/05/26/3099363.html我觉得每个软件,如果是绿色的话,那么就可以认为不写注册表的,如果不是绿色的话,那么应该是写注册表的SQLSERVER2005不是绿色软件,当然要写注册表,当然要先卸载再重新安装才能用,虽然SQLSERVER2005安装完毕之后就只会在安装目录下产生一个文件夹安装完毕之后,只会产生一个Microsoft SQL Server这个文件夹,当然不是把这个文件夹copy出来就可以使用的,因为SQLSERVER2005还写注册 阅读全文
posted @ 2013-05-25 21:22 桦仔 阅读(4373) 评论(5) 推荐(3) 编辑
摘要:SQL PROMPT5.3.4.1的一些设置选项我使用的是5.3.4.1版本sql prompt这个工具安装好之后就可以在SSMS里使用代码提示功能园子里非常多的文章:例如SQLSERVER开发利器XXXXXXhttp://www.cnblogs.com/VAllen/archive/2012/09/08/SQLPrompt.htmlhttp://www.cnblogs.com/keepfool/archive/2012/05/27/2519839.html不过大家都是只提供个软件下载、怎麽破解sql prompt还有简单的使用方法,但是具体怎样使用和设置真的没有昨天本人无聊研究了一下SQL 阅读全文
posted @ 2013-05-02 23:39 桦仔 阅读(6236) 评论(8) 推荐(3) 编辑
摘要:SQL2005隐藏服务器的方法在SQL2000里的网络实用工具里有一个选项:隐藏服务器,这样当你枚举局域网中的SQL2000服务器的时候就会搜索不了以为SQL2005没有了这个功能,今晚发现原来在配置管理器里大家看下面几张图就晓得步骤了,设置完毕之后需要重启SQL服务哦o(∩_∩)oSQL2000的SQL2005的设置了隐藏实例之后就搜索不了不隐藏实例SQL2000跟SQL2005的区别因为实例是从SQL2005引入的,所以SQL2005里叫隐藏实例要每个实例单独设置,没有设置隐藏的实例依然可以搜索到而不是整个sql服务器隐藏而SQL2000的话没有实例的概念,所以隐藏的话就隐藏整个服务器 阅读全文
posted @ 2013-03-13 23:13 桦仔 阅读(1365) 评论(1) 推荐(0) 编辑
摘要:SQLSERVER2005各个版本和组件与SQLSERVER2000多版本一样,微软公司也提供了SQL2005适用于不同环境的版本。为了更好地满足每一个客户的需求,微软公司重新设计了SQL2005产品家族。(1)SQLSERVER2005企业版 Enterprise:一个用于企业关键业务应用的完全集成的数据管理和分析平台。适合复杂的工作负荷、高级的分析需求和严格的高可用需求公司。特性包括:支持64颗64位CPU和32颗32位CPU、无限的伸缩和分区功能、高级数据库镜像功能、完全的在线和并行操作能力、数据库快照功能、包括完全的OLAP和数据挖掘的高级分析工具、报表生成器和定制的高扩展的报表功能、 阅读全文
posted @ 2013-02-26 23:07 桦仔 阅读(4235) 评论(0) 推荐(0) 编辑
摘要:SQLSERVER中的NUMA架构 之前看了园子里的宋大侠《浅谈SQL Server 对于内存的管理》的文章,里面讲到NUMA架构,究竟NUMA架构是啥东西 网上的资料说得让人一头雾水 刚好上星期在MSDN上找到一篇关于NUMA架构的文章,文章是2011年写的,现在分享给大家o(∩_∩)o 文章:S 阅读全文
posted @ 2013-02-05 00:15 桦仔 阅读(4129) 评论(1) 推荐(1) 编辑
摘要:SQLSERVER DBCC命令大全DBCC DROPCLEANBUFFERS:从缓冲池中删除所有缓存,清除缓冲区在进行测试时,使用这个命令可以从SQLSERVER的数据缓存data cache(buffer)清除所有的测试数据,以保证测试的公正性。需要注意的是这个命令只移走干净的缓存,不移走脏缓存。由于这个原因,在执行这个命令前,应该先执行CheckPoint,将所有脏的缓存写入磁盘,这样在运行DBCC RROPCLEANBUFFERS 时,可以保证所有的数据缓存被清理,而不是其中的一部分。DBCC CacheStats:显示存在于当前buffer Cache中的对象的信息,例如:hit r 阅读全文
posted @ 2013-01-19 00:39 桦仔 阅读(21192) 评论(11) 推荐(8) 编辑
摘要:关于学习编程和做好DBA的关系我这里只是讨论SQLSERVER DBA我发现很多DBA都是从程序员开始做起的,一般做了4、5年之后就转型做DBA或者管理或者销售啊。为什麽一开始不直接做DBA,DBA需要会TSQL,操作系统知识,数据库知识,可能还要熟悉业务但是不需要学习编程语言,例如:C# VB C... 阅读全文
posted @ 2013-01-18 10:46 桦仔 阅读(2550) 评论(4) 推荐(1) 编辑
摘要:SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第三篇) 最近真的没有什么精力写文章,天天加班,为了完成这个系列,硬着头皮上了 再看这篇文章之前请大家先看我之前写的第一篇和第二篇 第一篇:SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第一篇) 第二篇:SQLSERVER是怎 阅读全文
posted @ 2012-12-29 17:02 桦仔 阅读(4108) 评论(5) 推荐(3) 编辑
摘要:SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第二篇)在看这篇文章的内容之前,请阁下先看第一篇的内容,因为没有第一篇的基础的话会看到一头雾水哦o(∩_∩)o第一篇的地址:SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第一篇)------------------------------开始----------------------------------------------------------------索引上的数据检索方法如果一张表上没有聚集索引,数据将会以随机的顺序存放在表格里。以[SalesOrderDetail_test]为例子(这个表在第一篇里已经 阅读全文
posted @ 2012-12-22 17:23 桦仔 阅读(1750) 评论(0) 推荐(0) 编辑
摘要:SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第一篇)在第一篇里大家先搭建好测试环境,了解SQL Server中的执行引擎,了解一下表的信息,在第二篇再跟大家详细地说清楚索引在第三篇里跟大家说一下统计信息。因为篇幅比较长,所以暂时分成第一篇、第二篇、第三篇,不然大家看得很痛苦---------------------------------------------------------------开始-----------------------------------------------------先给出一篇文章的地址,都是博客园里的文章:http://www.cnblo 阅读全文
posted @ 2012-12-22 16:51 桦仔 阅读(2712) 评论(0) 推荐(0) 编辑
摘要:SQLSERVER中的自旋锁在SQLSERVER中的锁有很多,例如什么意向共享锁,排他锁,行,页锁 这些都属于LOCK而latch比lock更轻量级,只在内存中存在,一般用来锁住数据页面,防止多人同时修改内存中的一个数据页面而今天介绍的spin lock则比上面两种锁更更轻量级的spin lock介绍:lock和latch以外还有一种更轻量级的同步资源:spin lock(自旋锁),第一次看到spin lock这个名词是在潘爱民老师写的《Windows内核原理与实现》这本书里看到的,估计SQLSERVER也借鉴了Windows操作系统的一些同步技术。在SQLSERVER里,有些spin loc 阅读全文
posted @ 2012-12-15 22:31 桦仔 阅读(1052) 评论(0) 推荐(0) 编辑
摘要:SQLSERVER的数据页面结构在论坛里经常有人问到SQLSERVER是怎麽存放基础表数据的,既然不想查MSDN,本人就在这里说一下吧基础表数据都存放在数据页里面,SQLSERVER存储数据都是按照“页”为单位来存放在磁盘的,SQLSERVER从磁盘读写数据也是按照 “页” 为单位 一页一页地读取到内存,所以有时候如果数据不能塞满整个数据页,那么这种情况就叫做:page split 页拆分 或者 “碎片”(详细的在文章结尾会跟大家解释一下因为要先了解SQLSERVR的数据页面结构才能解释清楚),SQLSERVER有时候需要读取两页才能把用户需要找的数据读出来,如果表加了索引的话可以通过重建索引 阅读全文
posted @ 2012-12-09 22:08 桦仔 阅读(3978) 评论(4) 推荐(2) 编辑