- 页是 SQL Server 中数据存储的基本单位,大小为 8KB. - 区是空间管理的基本单位,8个物理上连续的页的集合(64KB). - 页的类型包括: 1. Data 2. Index 3. Text/Image 4. Global Allocation Map 5. Shared Global Allocation Map 6. Page Free Space, Index Allocation Map 7. Bulk Changed Map 8. Differential Chang…
Tempdb系统数据库是一个全局资源,可供连接到SQL Server实例的所有用户使用. 存储的内容项: 1.用户对象 用户对象由用户显示创建.这些对象可以位于用户会话的作用域中,也可以位于创建对象所用例程的作用域中.例程可以是存储过程.触发器或用户自定义函数.用户对象可以是一下项内容之一: 用户定义的表和索引 系统表和索引 全局临时表和索引 table变量 表值函数中返回的表 2.内部对象 内部对象是根据需要由SQL Server数据库引擎创建的,用户处理SQL Server语句.内部对象可以…
SQL Server允许用户设置数据库初始值和最大值,可以通过自动增长或者自动收缩进行配置.通过这些配置,我们可以防止数据库空间问题而导致的应用程序修改失败或者SQL Server磁盘空间耗尽的事情发生.一般来讲,如果数据库不是很忙,默认的设置为自动增长,这种方式能够满足大部分的需求.但是在大量并发的情况下,申请数据文件和日志文件增长本身是一件非常消耗系统资源和影响性能的工作.所以如果完全依赖SQL Server自动完成,可能会导致系统性能不够稳定.一个管理得比较精细的系统,应该预先考虑到可能的…
数据库管理员有时候需要控制文件的大小,可能选择收缩文件,或者把某些数据文件情况以便从数据库里删除. 这时候我们就要使用到DBCC SHRINKFILE命令,此命令的脚本为: DBCC SHRINKFILE ( { file_name | file_id } { [ , EMPTYFILE ] | [ [ , target_size ] [ , { NOTRUNCATE | TRUNCATEONLY } ] ] } ) [ WITH NO_INFOMSGS ] 由于DBCC SHRINKFILE一…
1.表和索引存储结构 在SQL Server2005以前,一个表格是以一个B树或者一个堆(heap)存放的.每个B树或者堆,在sysindexes里面都有一条记录相对应.SQL Server2005以后,引入了分区表的概念(Table Partition),在存储组织上,现有的分区基本上替代了原来表格的概念,原先表的概念成为了一个逻辑概念.一个分区就是一个B树或者一个堆.而一张表格则是一个到多个分区的组合. 1.1用B树存储于聚集索引的表数据页 如果一个表格上有聚集索引(Clustered In…
1.文件分配方式以及文件空间检查方法 最常用的检查数据文件和表大小的命令就是:sp_spaceused 此命令有三个缺陷:1.无法直观的看出每个数据文件和日志文件的使用情况.2.这个存储过程依赖SQL Server存储在一些系统视图里的空间使用统计信息计算出的结果,如果没有更新空间统计信息,比如刚刚发生大数据插入,sp_spaceused的结果就不准确.3.这个命令主要是针对普通用户的数据库,对于tempdb数据库里存储的一些系统临时数据对象,是无法用这个存储过程来统计的. 可以通过“sp_he…
master数据库 master作为数据库的主要数据库,记录着SQL Server系统的所有系统级信息,例如登录用户.系统配置设置.端点和凭证以及访问其他数据服务器所需要的信息.master数据库还记录着启动服务器实例所需要的初始化信息,每个其它数据库的主文件位置.master数据库是SQL Server启动的时候打开的第一个数据库.SQL Server是从这个数据库里找到其它数据的信息的.如果master数据库有问题,整个SQL Server都将无法启动. master数据库本身不大,做一次备…
作为数据库管理员最最痛苦的莫过于,当数据库宕机的时候需要找备份,但在这个时候突然发现备份文件也是坏的,这就意味着数据会丢失,为此可能会丢掉职位,饭碗不保,所以为此,我们一定要保证好备份的完整性,一般发生这种情况的原因莫过于一下几种: 1.备份文件和数据库放在同一个(或一组)的物理磁盘上.磁盘出现故障,备份也保不住了. 2.备份介质随坏,或者做的是网络备份,数据在网络传输中发生了损坏. 3.数据库在做完整备份.文件备份或者文件组备份的时候,里面的内容就已经有了随坏. 所以基于此,我们要避免的就是以…
本篇是继上篇的备份方式,本篇介绍的是还原方案,在SQL Server在2005以上现有的还原方案一般分为以下4个级别的数据还原: 1.数据库完整还原级别: 还原和恢复整个数据库.数据库在还原和恢复操作期间会处于离线状态 2.数据文件级别 还原和恢复一个数据文件或一组文件.在文件还原过程中,包含相应文件的文件组在还原过程中自动变为离线状态.访问离线文件组的任何尝试都会导致错误.但是其他文件组还能保持在线. 3.数据页级别 在完整恢复模式或大容量日志恢复模式下,可以对数据库指定还原特定的一个或一些数…
1. SQLSERVER信息收集 SQLDIAG 使用界面 C:\Users\Administrator>sqldiag2018/01/02 08:13:26.10 SQLDIAG Collector version2018/01/02 08:13:28.19 SQLDIAG IMPORTANT: Please wait until you see "Collection started" before attempting toreproduce your issue 2018…
http://www.cnblogs.com/zhijianliutang/category/277162.html…
记录一下 这一块 join的理解了 再完善过来. 1. Statistics的用法: 清空执行计划用的命令 dbcc freeproccache 清空buffer pool 里面的缓存命令 dbcc dropcleanbuffers 执行之前set statistics 命令之前可以执行如上的两个命令 1. set statistics time on 举例 set statistics time on go select count(1) from zwkmye2017 go set stat…
Chapter 4 Subqueries 子查询分为:独立子查询(Self-Contained Subqueries)和相关子查询(Correlated Subqueries),独立子查询可以单独拿出来执行,相关子查询可以理解为对外部查询的每一行都执行一遍内部子查询. EXISTS谓词接受一个子查询,如果子查询能返回任何行,则返回TRUE,否则返回FALSE(注意到了吗?是two-valued logic).EXISTS后面用SELECT * 没关系,会被优化掉的. 返回前一个或者后一个值的解决…
这一章主要是介绍 窗体中的 Aggregate 函数, Rank 函数, Distribution 函数以及 Offset 函数. Window Aggregate 函数 Window Aggregate 函数和在Group分组中使用的聚合函数是一样的, 只是不再定义Group并且是通过 OVER子句来定义和使用的. 在标准的SQL中, 窗体聚合函数是支持这三种元素的 - Partitioning, Ordering 和 Framing function_name(<arguments>) O…
SQL Server 窗体函数主要用来处理由 OVER 子句定义的行集, 主要用来分析和处理 Running totals Moving averages Gaps and islands 先看一个简单的应用 - 按照订单额从高到低对订单表信息做一个排名 USE TSQL2012 GO SELECT orderid, orderdate, val, RANK() OVER(ORDER BY val DESC) AS rnk FROM Sales.OrderValues ORDER BY rnk…
Chapter 10 Programmable Objects 声明和赋值一个变量: DECLARE @i AS INT; SET @i = 10; 变量可以让你暂时存一个值进去,然后之后再用,作用域是同一个Batch(批处理). 也可以这么用: DECLARE @firstname AS NVARCHAR(10), @lastname AS NVARCHAR(20); SELECT @firstname = firstname, @lastname = lastname FROM HR.Emp…
Chapter 9 Transactions and Concurrency SQL Server默认会把每个单独的语句作为一个事务,也就是会自动在每个语句最后提交事务(可以设置IMPLICIT_TRANSACTIONS来改变此默认行为). 事务的四个属性: 原子性 Atomicity.遇到错误时,SQL Server通常会自动回滚事务(除了一些不太严重的错误比如主键冲突.尝试获取锁超时).(可以通过 @@TRANCOUNT 判断当前是否处于一个事务当中) 一致性 Consistency.指同时…
Chapter 8 Data Modification SQL Server 2008开始,支持一个语句中插入多行: INSERT INTO dbo.Orders (orderid, orderdate, empid, custid) VALUES (10003, '20090213', 4, 'B'), (10004, '20090214', 1, 'A'), (10005, '20090213', 1, 'C'), (10006, '20090215', 3, 'C'); 这个语句作为一个原…
Chapter 7 Beyond the Fundamentals of Querying window function是什么呢?就是你SELECT出来一个结果集,然后对于每一行,你都想给它对应一个标量(a scalar),而这个标量是通过a subset of rows计算得到的,而这个a subset of the rows其实就是你得到的结果集里面的一个subset(子集).所以说就是把每一行都对应a subset of the rows,而这个对应关系通过OVER指定.举个例子: SE…
Chapter 6 Set Operators 语法如下: Input Query1 <set_operator> Input Query2 [ORDER BY ...] 有ORDER BY子句的查询不会返回一个set,而会返回一个cursor.上面的ORDER BY是对整个运算后的结果而言的.两个查询必须有相同数量的列,而且数据类型要兼容(低级的数据类型能隐式地转为高级的数据类型),结果集中的列名是由第一个查询的列名决定的.而且两个查询都不能有ORDER BY,如果你想用TOP什么的话,可以…
Chapter 5 Table Expressions 一个表表达式(table expression)是一个命名的查询表达式,代表一个有效的关系表.SQL Server包括4种表表达式:派生表(derived tables).公用表表达式(common table expressions (CTEs),).视图(views).内联表值函数(inline table-valued functions (inline TVFs)).使用表表达式的好处通常在于逻辑层面而非性能. 派生表(derive…
Chapter 2 Single-Table Queries GROUP BY之后的阶段的操作对象就是组(可以把一组想象成很多行组成的)了,HAVING负责过滤掉一些组.分组后的COUNT(*)表示每组的行数.COUNT(*)会把包含NULL的行也数进来,比如有5行的一组数据是30, 10, NULL, 10, 10,列名叫qty,那么COUNT(qty)会返回4,而COUNT(*)返回5.可以SELECT DISTINCT,也可以在聚合函数中指定DISTINCT,例如:COUNT(DISTIN…
几个缩写的全称:Data Definition Language (DDL), Data Manipulation Language (DML), and Data Control Language (DCL). 以下三种范式我的理解就是规范,用来保证数据关系的正确性和减少冗余. 第一范式:表中的每一行必须是唯一的. 第二范式:首先必须满足第一范式.其次,想获得任何非键属性值,就必须提供"整个候选键"(候选键(candidate key)就是能唯一确定一行的一个或多个属性).例如:表O…
Chapter 3 Joins Cross Joins(交叉联接)就是返回两个表的笛卡尔积(m行的表cross join一个n行的表得到一个m * n行的结果),它有两种标准SQL语法,第一种: SELECT C.custid, E.empid FROM Sales.Customers AS C CROSS JOIN HR.Employees AS E; 第二种: SELECT C.custid, E.empid FROM Sales.Customers AS C, HR.Employees A…
SQL Server 表的管理_关于事务的处理的详解(案例代码) 一.SQL 事务 1.1SQL 事务 ●事务是在数据库上按照一定的逻辑顺序执行的任务序列,既可以由用户手动执行,也可以由某种数据库程序自动执行. ●事务实际上就是对数据库的一个或者多个更改.当你在某张表上创建更新或者删除记录的时,你就已经在使用事务了.控制事务以保证数据完整性,并对数据库错误做出处理,对数据库来说非常重要. 实践中,通常会将很多 SQL 查询组合在一起,并将其作为某个事务一部分来执行. 1.2事务的属性: 事务具有…
Spark调度管理(读书笔记) 转载请注明出处:http://www.cnblogs.com/BYRans/ Spark调度管理 本文主要介绍在单个任务内Spark的调度管理,Spark调度相关概念如下: Task(任务):单个分区数据及上的最小处理流程单元. TaskSet(任务集):由一组关联的,但互相之间没有Shuffle依赖关系的任务所组成的任务集. Stage(调度阶段):一个任务集对应的调度阶段. Job(作业):有一个RDD Action生成的一个或多个调度阶段所组成的一次计算作业…
SQL Server:OA权限管理设计的实现 下   OA系统权限管理设计方案     不同职责的人员,对于系统操作的权限应该是不同的.优秀的业务系统,这是最基本的功能.     可以对“组”进行权限分配.对于一个大企业的业务系统来说,如果要求管理员为其下员工逐一分配系统操作权限的话,是件耗时且不够方便的事情.所以,系统中就提出了对“组”进行操作的概念,将权限一致的人员编入同一组,然后对该组进行权限分配.    权限管理系统应该是可扩展的.它应该可以加入到任何带有权限管理功能的系统中.就像是组件…
原文:SQL Server中TempDB管理(version store的逻辑结构) 原文来自: http://blogs.msdn.com/b/sqlserverstorageengine/archive/tags/tempdb/ http://blogs.msdn.com/b/sqlserverstorageengine/archive/2008/12/31/managing-tempdb-in-sql-server-tempdb-basics-version-store-logical-s…
原文:SQL Server中TempDB管理(版本存储区的一个example) 原文来自: http://blogs.msdn.com/b/sqlserverstorageengine/archive/tags/tempdb/ http://blogs.msdn.com/b/sqlserverstorageengine/archive/2008/12/31/managing-tempdb-in-sql-server-tempdb-basics-version-store-simple-examp…
原文:.NET编程和SQL Server ——Sql Server 与CLR集成 (学习笔记整理-1) 一.SQL Server 为什么要与CLR集成 1. SQL Server 提供的存储过程.函数等十分有限,经常需要外部的代码来执行一些繁重的移植: 2.与CLR集成可将原本需要独立的程序来实现的功能迁移到SQL Server 内部进行数据操作: 3.T-SQL数据查询语言在返回数据集方面很好,但是除此之外表现不佳.与CLR的集成可解决这一问题: 4..NET的操作代码和执行的速度比T-SQL…