天高地厚

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  SQL Server

SQL Server
摘要:数据是一个企业的命根子,尤其是在当今绝大部分的行业都实现了信息化的管理的时代,企业所有运营的数据、财务信息等都会存放到数据库中,在用户量和数据量不断变大的情况下,如何保障这些信息的安全、保证随时随地的能被用户访问,同时还需要在用户不间断访问的情况下调整、修改这些数据和结构,用以满足业务的需求变更,这本身一门很艺术的事了。 这篇文章主要总结了SQLServer数据库运维时,在保证数据安全和DBA操作数据库时保证不影响用户访问方面的一些技巧,之所以将之形容为“虎口夺食”,是因为DBA是个风险相当高的行业,在高并发、大数据量的系统中,很多小的失误或者操作不当,都将造成严重的后果,不仅影响系统的正常. 阅读全文

posted @ 2013-05-18 10:30 天高地厚-GNU 阅读(293) 评论(0) 推荐(0)

摘要:每一个数据库至少有一个日志文件,无论为事务日志定义多个少物理文件,SQL Server均视为一个连续的文件。该事务日志文件实际上由一系列的虚拟日志文件VLF来管理。虚拟日志文件的大小由SQL Server的总日志文件的大小决定。虚拟日志文件的物理结构图如下所示:当该日志文件收缩时,日志文件末端的未使用的VLF可以被删除。在SQL server2000中,日志文件仅可以从日志文件的尾部收缩,但是微软已经纠正先前在SQL server 7.0中的问题,当你备份或截断日志时,SQL Server会自动将日志的活动部分转移到文件的始端,然后你运行DBCC SHRINKFILE或DBCC SHRINKD 阅读全文

posted @ 2013-04-18 13:57 天高地厚-GNU 阅读(145) 评论(0) 推荐(0)

摘要:表组织表包含在一个或多个分区中,每个分区在一个堆或一个聚集索引结构包含数据行。堆页或聚集索引页在一个或多个分配单元中进行管理,具体的分配单元数取决于数据行中的列类型。聚集表、堆和索引SQL Server 表使用下列两种方法之一来组织其分区中的数据页:聚集表是有聚集索引的表。数据行基于聚集索引键按顺序存储。聚集索引按 B 树索引结构实现,B 树索引结构支持基于聚集索引键值对行进行快速检索。索引中每个级别的页(包括叶级别的数据页)链接在一个双向链接的列表中。但是,通过使用键值来执行从一个级别到另一级别的导航。堆是没有聚集索引的表。数据行不按任何特殊的顺序存储,数据页也没有任何特殊的顺序。数据页不在 阅读全文

posted @ 2013-04-15 13:32 天高地厚-GNU 阅读(136) 评论(0) 推荐(0)

摘要:sql server的存储机制区段: 是用来为表和索引 分配空间的基本存储单元. 由 8个连续的页面构成,大小为64kb.区段的注意事项:一旦区段已满,那么下一记录 将要占据的空间不是记录的大小,而是整个区段的大小.通过预先分配空间,sql server节省了为每个记录分配新空间的时间页: 页是在到达实际数据行 之前所能达到的最后一个存储级别.尽管每个区段中的页数是固定的,但是每一页中的行数 不是固定的--这完全取决于行的大小,而行的大小 可以变化的. 可以把 页 看作是 表行和索引行的容器.通常不允许行跨页.就是行的大小 最大为8kb.下面介绍两种不同的页类型:数据页: 就是表中的实际数据索 阅读全文

posted @ 2013-04-15 13:24 天高地厚-GNU 阅读(132) 评论(0) 推荐(0)

摘要:既然我们要用内部的等待统计信息来分析问题,那么首先就要得知道:到底有哪些等待类型。在SQL Server中,等待类型有很多,为了便于使用和管理,这些等待类型又是被进行了分类的,所以,下面,我们就来看看等待类型的分类。说出来可能有点吓人:在SQL Server内部,可以跟踪大约400多个等待类型。如此众多的等待类型,可以让我们感受到:发生等待的原因真是太多了,如果靠我们自己“小米+步枪”的方式去分析,会花费多少精力。尽管有如此众多的等待,其实我们常常用到的,或者我们关注的等待就只有很少的一部分,如那些与资源争夺相关的等待:CPU,I/O,内存等。下面,我们就介绍我们常常使用的四大等待类型的分类: 阅读全文

posted @ 2013-01-30 10:52 天高地厚-GNU 阅读(282) 评论(0) 推荐(0)

摘要:上篇博客中所说的对于表操作的几种限制少分析了触发器。这次从对表设计的角度来着重分析约束和触发器的关系,并进一步扩展比较触发器和存储过程。但在看该篇博客前强烈建议大家好好读下我的上一篇博客《约束与数据库对象规则、默认值的探究》首先,从图上来比较三者的关系: 触发器不仅能够保证数据的完整性,而且还可以封装复杂的T-SQL逻辑处理语句,在功能上类似于存储过程,所以触发器又是一种特殊的存储过程。但是存储过程的执行是我们使用Exec主观调用的,而触发器是经过一种事件操作后自动被调用的。 在拆开分析约束和触发器、触发器和存储过程之前我们穿插点外话。在数据库程序设计中包含有多种数据模型:20世纪60年代.. 阅读全文

posted @ 2013-01-26 10:38 天高地厚-GNU 阅读(360) 评论(0) 推荐(0)

摘要:约束、规则、默认值这三者在数据表中规定了数据进行操作时的限制条件。他们三者有关系也有区别,用了两天的时间研究了他们三者,总结如下。首先让我们从关系角度来分析:●浅谈约束、规则、默认值 1、约束,约束顾名思义是限制条件的意思,其实它的作用也是如此,它是对所要进行增删改查操作的数据进行一次检查,检查这些数据是否符合我们所要约束的条件。举个例子:我们都经历过高考,考试规定考生不许带与考试无关的物品这就是一种约束。报名考试的考生可能因为某些意外没有进入考场考试,但大部分考生还是进行了考试。那么在考场内就产生了两种情况空位和非空位,这就是我们约束条件的两种情况。我们继续分析,在考生进入考场的情况中,考生 阅读全文

posted @ 2013-01-26 10:37 天高地厚-GNU 阅读(157) 评论(0) 推荐(0)

摘要:许多Windows系统管理员,还兼职着微软SQL Server数据库管理员(DBA)的身份。另一方面,企业将许多机密的信息存储到了SQL Server数据库中。作为一名DBA新手,则需要了解SQL Server的安全模式和如何配置其安全设置,以保证“合法”用户的访问并阻止“非法”访问。而在SQL Server中登陆、用户、角色、权限提供了对数据库访问的权限,接下来在数据库安全性上着重分析它们的关系。●安全层次和验证模式一、安全层次 SQL Server支持三级安全层次。在我们登陆到SQL Server时,其实我们是经过了三步的验证。 第一层次是用户提供正确的账号和密码登录到SQL Serv.. 阅读全文

posted @ 2013-01-26 10:35 天高地厚-GNU 阅读(334) 评论(0) 推荐(0)

摘要:总是在说要学数据库,记得一位老师给我们说过在大学学会一门编程语言,外加数据库,最后学好网络编程,那我们在毕业后找工作时是很容易的。学习了有一段时间的数据库了,但总是在认识名词,像ADO(ActiveX Data Object)、DAO(Data Access Object)、RDO(Remote Data Object)、ODBC(Open Database Connectivity)、OLEDB(Object Linking and Embedding, Database)等等,但一直迷惑我的是数据库到底是什么,它是干什么的,在此我有必要好好了解下。 在计算机课本中数据库是被这样解释的:.. 阅读全文

posted @ 2013-01-26 10:31 天高地厚-GNU 阅读(254) 评论(0) 推荐(0)

摘要:很多开发人员都想成为一名数据库培训,也有很多人一开始就把自己定位成为一名DBA,DBA究竟需要掌握些什么知识和技能呢?以下是我 做DBA工作和面试DBA时,整理的一些DBA方面的三十个问题,三十个大问题中还有许多小的问题,涵括了SQL Server 2008 R2培训比较多的技术知识点,与大家分享下,希望给有志做DBA的朋友们一些帮助:1. char、varchar、nvarchar之间的区别(包括用途和空间占用);xml类型查找某个节点的数据有哪些方法,哪个效率高;使用存储过程和使用T-SQL查询数据有啥不一样;2.系统DB有哪些,都有什么作用,需不需要做备份,为什么;损坏了如何做还原(.. 阅读全文

posted @ 2013-01-17 11:30 天高地厚-GNU 阅读(232) 评论(0) 推荐(0)

摘要:使用性能监视器找出SQLServer硬件瓶颈开始SQLServer性能调优的最佳地方就是从性能监视器(系统监视器)开始。通过一个24小时的周期对一些关键的计数器进行监控,你将对你SQLServer服务器的硬件瓶颈了如指掌。一般来说,使用性能监视器去创建一个一些关键的计数器的24小时周期的监控日志。当你决定创建这个日志的时候,你需要选择一个典型的24小时的周期,例如,选择一个典型的比较忙的日期,而不是周日或节假日。一旦你将这些捕获的数据形成日志后,在性能监视器的图形界面下会显示计数器的推荐值。你在上表中记下均值、最小值、峰值。做完这些后,用你的结果跟下面的分析比较。通过你的结果和下面的建议值进行 阅读全文

posted @ 2013-01-17 11:16 天高地厚-GNU 阅读(170) 评论(0) 推荐(0)

摘要:对单表超过300w+数据的Web应用程序进行测试后发现了一些功能、性能问题,采取了以下办法来进行调整: 将绝大部分的SQL查询改为存储过程,这样的操作毫无疑问可以提高部分性能。 凡是使用“select * from xxx”的操作一律具体到所需字段。 使用join连接2个以上大量数据的表,且基础数据表变化不大的查询一律使用视图,并为此视图建立索引。理由来自SQL Server联机帮助手册: “对于标准视图而言,为每个引用视图的查询动态生成结果集的开销很大,特别是对于那些涉及对大量行进行复杂处理(如聚合大量数据或联接许多行) 的视图。如果在查询中频繁地引用这类视图,可通过对视图创建唯一聚... 阅读全文

posted @ 2013-01-17 11:08 天高地厚-GNU 阅读(152) 评论(0) 推荐(0)

摘要:1. 数据库表锁定原理 1.1 目前的C/S,B/S结构都是多用户访问数据库,每个时间点会有成千上万个user来访问DB,其中也会同时存取同一份数据,会造成数据的不一致性或者读脏数据.2.2 SQL Server提供几个DMV,查看locks sys.dm_exec_requests sys.dm_tran_locks sys.dm_os_waiting_tasks sys.dm_tran_database_transactions 阅读全文

posted @ 2013-01-17 11:03 天高地厚-GNU 阅读(183) 评论(0) 推荐(0)

摘要:众所周知SqlServerExpress2005 属于简装版,安装程序五六十兆,在客户的服务器上部署时很畅快。但该数据库无Agent这样对我们进行定时备份保护数据安全带来了麻烦。为了定时备Express2005数据库,可以采取以下方案: 1.编写WindowsService,在服务内调用备份数据库方法。 2.使用Windows自带的计划任务。(推荐使用)。 下面就由我来介绍一下如何用计划任务实现数据库备份的,操作步骤如下: 1. 首先建立一个windows任务计划,打开任务计划向导,选择指定的的exe文件,该文件名为SQLCMD.EXE,位于x:\Program Files\Micro... 阅读全文

posted @ 2013-01-17 10:37 天高地厚-GNU 阅读(138) 评论(0) 推荐(0)

摘要:关于数据库的备份恢复原理,大家多少都比较熟悉了。但是,你目前做的数据库备份有多可靠?你可以安心睡觉了吗?如果答案是肯定的,那就不用多花时间看下文了,如果觉得还不够安心,总担心数据库哪一天坏了修不好,那么请接着看: 1、我有RAID,还需要做数据库备份吗?需要。有了RAID,万一部份磁盘损坏,可以修复数据库,有的情况下数据库甚至可以继续使用。但是, 如果哪一天,你的同事不小心删除了一条重要的记录,怎么办?RAID是无能为力的。你需要合适的备份策略,把那条被误删的数据恢复出来。所以有了 RAID,仍需要做备份。 集群,磁盘镜像同理。 2、如果你只做全备份,那么受限于全备份的大小和备份时间,不... 阅读全文

posted @ 2013-01-17 10:36 天高地厚-GNU 阅读(160) 评论(0) 推荐(0)

摘要:当我们创建一个数据库的时候,例如以缺省的方式CREATE DATABASE TESTDB,SQLServer自动帮我们创建好如下两个数据库文件。 这两个数据文件是实实在在的操作系统文件,其中一个是叫行数据文件,用来存储数据库的各种对象,另外一个是日志文件,从来记录数据变化的过程。 从逻辑角度而言,数据库的最小存储单位为页即8kb。 数据库被分成若干逻辑页面(每个页面8KB),并且在每个文件中,所有页面都被连续地从0到x编号,其中x是由文件的大小决定的。我们可以通过指定一个数据库ID、一个文件ID、一个页码来引用任何一个数据页。每个数据页则用来存储表和索引,以及相关的数据库管理信息。 我... 阅读全文

posted @ 2013-01-17 10:26 天高地厚-GNU 阅读(179) 评论(0) 推荐(0)

摘要:SQL Server表索引有一种使自己稀疏的特性,表越大并且访问越频繁,就越需要一个合适的调整因子。 SQL Server表索引的填充因子选项是最常见的针对索引的一种调优方法。索引的填充因子是一个百分比,用于告诉SQL Server每个叶级索引页可以填充多少索引数据,多少空间应该保留作为成长空间。如果基础表的列被修改或列被添加或在表中添加数据时,那么就会发生扩 展。随着时间的推移索引碎片在增长,或者索引性能表现不佳,这是一个标志你可能需要调整最常用表的索引填充因子 阅读全文

posted @ 2013-01-17 10:19 天高地厚-GNU 阅读(255) 评论(0) 推荐(0)

摘要:刚开始用SQL Server的时候,我没有用显示执行计划来对查询进行分析。我曾经一直认为我递交的 SQL查询都是最优的,而忽略了查询性能究竟如何,从而对“执行计划”重视不够。在我职业初期,我只要能获取数据就很开心,而不去考虑数据是如何返回的, “执行计划”对我的查询作了什么工作。我以为SQL Server会自己去处理查询的性能问题的。作为一个刚进入IT行业或者刚学到新技术的软件工程师,在编写代码前不太可能有时间去学习其实必须掌握的知 识。也许这是因为IT行业竞争太激烈的缘故。随着时间的流逝,数据库容量慢慢变大了。终于某天,客户对应用系统的查询性能感到不满意了。他面带怒容来找我,抱怨由于查询太慢 阅读全文

posted @ 2013-01-17 09:48 天高地厚-GNU 阅读(198) 评论(0) 推荐(0)

摘要:MaintenancePlans(维护计划)就是来帮你方便的管理和优化数据库。MaintenancePlans(维护计划)主要能做的工作为:1.备份数据库(BackUpDatabase)2.更新统计信息(UpdateStatistics)3.检查数据库完整性(CheckDatabaseIntegrity)4.清除历史记录(HistoryCleanup)5.清除维护(MaintenanceCleanup)6.收缩数据库(ShrinkDatabase)7.通知操作员(NotifyOperator)8.执行SqlServer代理作业(ExecuteSQLServerAgentJob)9.执行T-SQ 阅读全文

posted @ 2012-12-19 10:33 天高地厚-GNU 阅读(193) 评论(0) 推荐(0)

摘要:一:简介日志传送将事务日志不间断地从一个数据库(主数据库)发送到另一个数据库(辅助数据库)。不间断地备份主数据库中的事务日志,然后将它们复制并还原到辅助数据库,这将使辅助数据库与主数据库基本保持同步。目标服务器充当备份服务器,并可以将查询处理从主服务器重新分配到一个或多个只读的辅助服务器。日志传送可与使用完整或大容量日志恢复模式的数据库一起使用。二:日志传送操作日志传送由三项操作组成:1.在主服务器实例中备份事务日志。2.将事务日志文件复制到辅助服务器实例。3.在辅助服务器实例中还原日志备份。日志可传送到多个辅助服务器实例。在这些情况下,将针对每个辅助服务器实例重复执行操作 2 和操作 3。日 阅读全文

posted @ 2012-12-18 16:10 天高地厚-GNU 阅读(238) 评论(0) 推荐(0)

点击右上角即可分享
微信分享提示