当前位置:文档之家› SQL server 2000 分区表和分区视图

SQL server 2000 分区表和分区视图

SQL server 2000 分区表和分区视图
SQL server 2000 分区表和分区视图

sql Server 2000 分区视图的运用

分区视图在一个或多个服务器间水平连接一组成员表中的分区数据,使数据看起来就象来自一个表。Microsoft? SQL Server? 2000 区分本地分区视图和分布式分区视图。在本地分区视图中,所有的参与表和视图驻留在同一个 SQL Server 实例上。在分布式分区视图中,至少有一个参与表驻留在不同的(远程)服务器上。此外,SQL Server 2000 还区分可更新的分区视图和作为基础表只读复本的视图。分布式分区视图可用于实现数据库服务器联合体。联合体是一组分开管理的服务器,但它们相互协作分担系统的处理负荷。这种通过分区数据形成数据库服务器联合体的机制使您能够扩大一组服务器,以支持大型的多层 Web 站点的处理需要。有关更多信息,请参见设计联合数据库服务器。

在实现分区视图之前,必须先水平分区表。原始表被分成若干个较小的成员表。每个成员表包含与原始表相同数量的列,并且每一列具有与原始表中的相应列同样的特性(如数据类型、大小、排序规则)。如果正在创建分布式分区视图,则每个成员表分别位于不同的成员服务器上。为了获得最大程度的位置透明度,各个成员服务器上的成员数据库的名称应当是相同的,但不要求非这样。例如:Server1.CustomerDB、Server2.CustomerDB、Server3.CustomerDB。

成员表设计好后,每个表基于键值的范围存储原始表的一块水平区域。键值范围基于分区列中的数据值。每一成员表中的值范围通过分区列上的 CHECK 约束强制,并且范围之间不能重叠。例如,不能使一个表的值范围从 1 到 200000,而另一个表的值范围从 150000 到 300000,因为这样将不清楚哪个表包含 150000 与 200000 之间的值。

例如,正在将一个Customer表分区成三个表。这些表的 CHECK 约束为:

-- On Server1:

CREATE TABLE Customer_33

(CustomerID INTEGER PRIMARY KEY

CHECK (CustomerID BETWEEN 1 AND 32999),

... -- Additional column definitions)

-- On Server2:

CREATE TABLE Customer_66

(CustomerID INTEGER PRIMARY KEY

CHECK (CustomerID BETWEEN 33000 AND 65999),

... -- Additional column definitions)

-- On Server3:

CREATE TABLE Customer_99

(CustomerID INTEGER PRIMARY KEY

CHECK (CustomerID BETWEEN 66000 AND 99999),

... -- Additional column definitions)

主要功能是为了提高大数据量性能,通过把数据放到不同表,或不能同服务器的不同数据库实例上。来提高数据性能。

下面看一个实际,转自WEB CAST

在服务器A创建表CUSTOMERS

//ServerA

Use pubs

go

Create table customers (

Customerid varchar(5) not null,

CompanyName varchar(50) not null,

ContactName varchar(30) null,

CONSTRAINT PK_customers PRIMARY KEY CLUSTERED (Customerid),

CONSTRAINT CK_customerid CHECK (Customerid between'AAAAA'and'LZZZZ')

)

在服务器B也创建另一张表,表的结果,类型完全一样,注意表的CHECK不同。(表名可以不同,但最好一样)

//Server B

use pubs

go

Create table customers (

Customerid varchar(5) not null,

CompanyName varchar(50) not null,

ContactName varchar(30) null,

CONSTRAINT PK_customers PRIMARY KEY CLUSTERED (Customerid),

CONSTRAINT CK_customerid CHECK (Customerid between'M'and'ZZZZZ')

)

go

在A服务器上创建B服务器的链接服务器,已使A服务器能访问B服务器,

//ServerA

exec sp_addlinkedserver

@server='DPVSERVER1', @srvproduct='',

@provider='SQLOLEDB', @datasrc='ServerB'

go

exec sp_addlinkedsrvlogin

@rmtsrvname='DPVSERVER1'

, @useself='false'

, @rmtuser='sa'

, @rmtpassword='password'

go

同样,B服务器,创建A服务器的链接服务器,

//ServerB

exec sp_addlinkedserver

@server='DPVSERVER2', @srvproduct='',

@provider='SQLOLEDB', @datasrc='ServerA'

exec sp_addlinkedsrvlogin

@rmtsrvname='DPVSERVER2'

, @useself='false'

, @rmtuser='sa'

, @rmtpassword='password'

go

在A服务器上设置,属性,

//ServerA

Exec sp_serveroption 'DPVSERVER1', 'lazy schema validation', 'true' B服务器上,设置属性,

//Sever B

Exec sp_serveroption 'DPVSERVER2', 'lazy schema validation', 'true' A服务器上创建分区视图:

//Server A:

Create view DPV_Customers As

Select*from Customers

Union all

Select*from DPVSERVER1.Pubs.dbo.Customers

B服务器也创建分区视图:(注意视图,UNION ALL的顺序)

Create view DPV_Customers As

Select*from DPVSERVER2.Pubs.dbo.Customers

UNION ALL

Select*from Customers

下面使用DPV_CUSTOMERS,和实际物理表一样

执行的时候打开查询分析器的执行计划,可以看到,实际,会优化,实际应该读那一张,写那一样表。

set xact_abort on

INSERT INTO DPV_CUSTOMERS VALUES('AAMAY','FUZHOU COMPANY','MARRY')

INSERT INTO DPV_CUSTOMERS VALUES('CJOHN','XIMEN COMPANY','MARRY')

INSERT INTO DPV_CUSTOMERS VALUES('SMITH','SHANGHAI COMPANY','TOM')

INSERT INTO DPV_CUSTOMERS VALUES('YOUNG','FUJIAN COMPANY','JANE')

INSERT INTO DPV_CUSTOMERS VALUES('GTOPP','BEJING COMPANY','TOM')

INSERT INTO DPV_CUSTOMERS VALUES('QUILH','BEJING COMPANY','TOM')

//SELECT*FROM DPV_Customers order by customerid

//SELECT*FROM DPV_Customers WHERE CustomerID='QUILH'

这个功能很不错,不过也会有一些问题,

1,表不能有DEFAULT 约束

2,INSERT 要一次性查询所有列的值,没有值的用NULL

3,各个表个CHECK集合不能有重复,也不充许找不一个满足要求的表。

还在研究中。。。。。。。。。。。。。。。

教你在SQL Server 2000数据库中使用分区

分区视图联接来自一组成员的水平分区数据,使数据看起来象来自同一张表。SQL Server 2000 区分本地分区视图和分布式分区视图。在本地分区视图中,所有相关表和视图驻留在SQL Server 的同一实例上。在分布式分区视图中,相关表中至少有一张表驻留在其他某个(远程)服务器上。建议您不要将分布式分区视图用于数据仓库应用程序。

矢量数据仓库围绕事实(标量)和矢量构建,从物理上通常表示为星形架构和雪花形架构,极少有同时包含事实和矢量的完全非正交化的平面表。由于矢量架构是最常见的关系型数据仓库结构,本文集中讨论这类架构的分区。下面的建议也适用于其他通用数据仓库架构。

分区的优点

数据修剪:

许多数据仓库管理员会定期将陈旧的数据归档。例如,一个单击流数据仓库可能只将详细数据联机保留三至四个月。其他常见的规则可能是联机保留13 个月、37 个月或10 年,当旧数据不在活动窗口中时就归档并从数据库中删除。这种滚动窗口结构是大数据仓库通常采取的做法。

在没有分区表的情况下,从数据库中删除旧数据的进程需要一个很大的DELETE 语句,例如:

DELETE FROM fact_table

WHERE date_key < 19990101

执行该语句开销会非常大,可能比同一张表的加载进程需要更多的时间。相反,对于分区表,管理员重新定义UNION ALL 视图以排除最旧的表,然后将该表从数据库中删除(假设已确保备份该表),这个过程几乎可以在瞬间完成。

后面我们会讨论到,维护分区表的费用也很高。如果数据修剪是采用分区的唯一原因,设计者应考虑以数据分解的方式从未分区的表中删除旧数据。在低优先级进程上连续运行一个每次删除1000 行(用“set rowcount 1000”命令)的脚本,直至删除所有希望删除的数据。该技术可在大系统上有效运用,比创建必要的分区管理系统更为直接。根据加载量和系统使用状况,该技术适合于某些系统,并应该考虑在系统上进行基准测试。

加载速度:

加载数据最快的方法是将数据加载至空表或没有索引的表。通过加载至较小的分区表,渐变加载进程的效率将大大提高。

可维护性:

一旦已建成支持分区的数据仓库分阶段应用程序,整个系统将变得容易维护。维护活动(包括加载数据、备份和还原表)可以并行地执行,这样可以极大地改善性能。渐变填充下行数据流多维数据集的进程可以被加速和简化。

查询速度:

查询速度不应该作为对数据仓库关系型数据库进行分区的理由。对于分区和未分区的事实表,查询性能都差不多。在正确设计的分区数据库中,关系引擎仅在查询计划中包括解析查询所需的相关分区。例如,如果数据库按月分区,查询条件为2000 年 1 月,则查询计划仅包括2000 年 1 月的分区。结果查询将对分区表正确执行,与在分区键上带有簇索引的已索引合并表上执行的大体相同。

分区的缺点

复杂性:

分区的主要缺点是需要管理员创建应用程序来管理分区。在尚未设计、测试和试运行应用程序来管理分区之前,将在关系型数据库中使用水平分区的数据仓库投入正式运行是不恰当的。本文的目的之一就是讨论与分区管理应用程序有关的问题和设计决策。

查询设计约束:

要获得最佳的查询性能,所有的查询都应将条件直接放在事实表中的筛选键上。将约束放在第二张表(例如以日期为矢量的表)的查询将包括所有分区。

设计时要考虑的因素:

矢量数据仓库围绕事实(标量)和矢量构建,从物理上通常表示为星形架构和雪花形架构,极少有同时包含事实和矢量的完全非正交化的平面表。典型情况下,矢量数据仓库的管理员仅对事实表进行分区;对矢量表进行分区几乎没有什么好处。在某些情况下,对包含多于一千万个成员的大型矢量表进行分区会有些好处。也可以对非矢量关系型数据仓库进行分区,本文中的一般观点仍然适用。

只有充分考虑系统体系结构和设计目标,才能制订有效的分区计划。即使使用相同的架构设计,仅用于填充服务分析多维数据集的关系型数据仓库可能采用一个不同于分析员直接查询的数据仓库的分区结构。带有滚动窗口的系统必须按时间分区,其他系统则不一定。

如果数据仓库包括分析服务多维数据集,Microsoft 建议关系型数据仓库和分析服务数据库中的分区应该为并行结构。维护应用程序被简化了:应用程序在关系型数据库中创建新表的同时创建一个新多维数据集分区。管理员仅需要掌握一种分区策略。不过,一个应用程序也可能有充分的理由对两个数据库以不同方式进行分区,唯一降低的将是数据库维护应用程序的复杂性。

分区设计概述

SQL Server 数据库中的分区表可以使用可更新或可查询(不可更新)的分区视图。在这两种情况下,表分区都是由每个分区都包含正确数据的CHECK 约束来创建的。一个可更新的分区视图支持对视图进行INSERT (或UPDATE 或DELETE)操作,并将操作推入至正确的基础表。这很有益处,但数据仓库应用程序通常需要进行批量加载,而这是无法通过视图执行的。下表总结了可更新和可查询分区视图的要求、优点和缺点。

在sqlserver2000中使用分区表和分区视图

用分区表和分区视图有什么好处,这里就不多说了.顺便说一句就是2000中的分区表和分区视图是伪分区,在2005中才实现了真正高性能的分区表.

diary表太大了,查询起来很慢,假如diary表有200多W数据.

1/建立分区表:

将diary表分离成5个表:

diary1/diary2/diary3/diary4/diary5,50万用户一个表.

select * into diary1 from diary where diary_id between 1 and 500000;

.

.

select * into diary1 from diary where diary_id between 1500001 and 2000000;

select * into diary1 from diary where diary_id >2000000;

--其实就是把一张表在物理上分成了5个.

2/建立分区视图:

CREATE VIEW diaryview

AS

SELECT * FROM diary1

UNION ALL

SELECT * FROM diary2

UNION ALL

SELECT * FROM diary3

UNION ALL

SELECT * FROM diary4

UNION ALL

SELECT * FROM diary5

然后当用户查询时,只给他们使用视图的权限,这样对于他们来说,就还和一张表一样了.

在Microsoft SQL Server 2000数据仓库中使用分区

概述

本文讨论数据仓库中数据分区的作用。关系型数据仓库和分析服务多维数据集都支持数据分区。分区的逻辑概念在Microsoft? SQL Server? 的两个引擎中是相同的:通过键(例如日期)对数据进行水平分区。在关系型数据库中,分区是通过创建单独的物理表(例如为每个月的数据创建一个表)并且定义一个成员表的联合视图来实现的。与此类似,SQL Server Enterprise Edition 中的分析服务支持显式的多维数据集分区。在关系型数据库和联机分析处理(OLAP) 引擎中,物理存储的复杂性对于分析用户是不可见的。

数据仓库分区的优点:

大大缩短查询时间。

减少加载时间,改善数据库的可维护性。

解决从活动数据库中删除旧数据时出现的数据修剪问题。

该技术需要创建比非分区系统更复杂的数据分阶段应用程序。本文介绍设计、实现和维护水平分区数据仓库的最佳方法。

因为有效的分区计划可以极大地改善查询性能,所以我们极力建议您对大型分析服务系统进行分区。尽管对于某些特定的数据仓库维护问题,对关系型数据仓库进行分区是有效的解决方案,但通常不推荐您这样做。在SQL Server 2000 关系型数据仓库中使用分区分区视图联接来自一组成员的水平分区数据,使数据看起来象来自同一张表。SQL Server 2000 区分本地分区视图和分布式分区视图。在本地分区视图中,所有相关表和视图驻留在SQL Server 的同一实例上。在分布式分区视图中,相关表中至少有一张表驻留在其他某个(远程)服务器上。建议您不要将分布式分区视图用于数据仓库应用程序。

矢量数据仓库围绕事实(标量)和矢量构建,从物理上通常表示为星形架构和雪花形架构,极少有同时包含事实和矢量的完全非正交化的平面表。由于矢量架构是最常见的关系型数据仓库结构,本文集中讨论这类架构的分区。下面的建议也适用于其他通用数据仓库架构。分区的优点

数据修剪

许多数据仓库管理员会定期将陈旧的数据归档。例如,一个单击流数据仓库可能只将详细数据联机保留三至四个月。其他常见的规则可能是联机保留13 个月、37 个月或10 年,当旧数据不在活动窗口中时就归档并从数据库中删除。这种滚动窗口结构是大数据仓库通常采取的做法。

在没有分区表的情况下,从数据库中删除旧数据的进程需要一个很大的DELETE 语句,例如:

DELETE FROM fact_table

WHERE date_key 执行该语句开销会非常大,可能比同一张表的加载进程需要更多的时间。相反,对于分区表,管理员重新定义UNION ALL 视图以排除最旧的表,然后将该表从数据库中删除(假设已确保备份该表),这个过程几乎可以在瞬间完成。

后面我们会讨论到,维护分区表的费用也很高。如果数据修剪是采用分区的唯一原因,设计者应考虑以数据分解的方式从未分区的表中删除旧数据。在低优先级进程上连续运行一个每次删除1000 行(用“set rowcount 1000”命令)的脚本,直至删除所有希望删除的数据。该技术可在大系统上有效运用,比创建必要的分区管理系统更为直接。根据加载量和系统使用状况,该技术适合于某些系统,并应该考虑在系统上进行基准测试。加载速度加载数据最快的方法是将数据加载至空表或没有索引的表。通过加载至较小的分区表,渐变加载进程的效率将大大提高。可维护性

一旦已建成支持分区的数据仓库分阶段应用程序,整个系统将变得容易维护。维护活动(包括加载数据、备份和还原表)可以并行地执行,这样可以极大地改善性能。渐变填充下行数据流多维数据集的进程可以被加速和简化。查询速度

查询速度不应该作为对数据仓库关系型数据库进行分区的理由。对于分区和未分区的事

实表,查询性能都差不多。在正确设计的分区数据库中,关系引擎仅在查询计划中包括解析查询所需的相关分区。例如,如果数据库按月分区,查询条件为2000 年 1 月,则查询计划仅包括2000 年1 月的分区。结果查询将对分区表正确执行,与在分区键上带有簇索引的已索引合并表上执行的大体相同。分区的缺点

复杂性

分区的主要缺点是需要管理员创建应用程序来管理分区。在尚未设计、测试和试运行应用程序来管理分区之前,将在关系型数据库中使用水平分区的数据仓库投入正式运行是不恰当的。本文的目的之一就是讨论与分区管理应用程序有关的问题和设计决策。查询设计约束

要获得最佳的查询性能,所有的查询都应将条件直接放在事实表中的筛选键上。将约束放在第二张表(例如以日期为矢量的表)的查询将包括所有分区。设计时要考虑的因素矢量数据仓库围绕事实(标量)和矢量构建,从物理上通常表示为星形架构和雪花形架构,极少有同时包含事实和矢量的完全非正交化的平面表。典型情况下,矢量数据仓库的管理员仅对事实表进行分区;对矢量表进行分区几乎没有什么好处。在某些情况下,对包含多于一千万个成员的大型矢量表进行分区会有些好处。也可以对非矢量关系型数据仓库进行分区,本文中的一般观点仍然适用。

只有充分考虑系统体系结构和设计目标,才能制订有效的分区计划。即使使用相同的架构设计,仅用于填充服务分析多维数据集的关系型数据仓库可能采用一个不同于分析员直接查询的数据仓库的分区结构。带有滚动窗口的系统必须按时间分区,其他系统则不一定。

如果数据仓库包括分析服务多维数据集,Microsoft 建议关系型数据仓库和分析服务数据库中的分区应该为并行结构。维护应用程序被简化了:应用程序在关系型数据库中创建新表的同时创建一个新多维数据集分区。管理员仅需要掌握一种分区策略。不过,一个应用程序也可能有充分的理由对两个数据库以不同方式进行分区,唯一降低的将是数据库维护应用程序的复杂性。

SQL Server 2000 实现可更新分区视图

在数据仓库中,数据库分区、表分区是一个很重要的仓储技术手段,对于大数据量的存储和维护带来很多利益,但SQL Server 2000不是一个数据仓库产品,对数据仓库这样的大数据量的处理和维护就会有点力不从心。这里介绍的可更新分区视图能够在一定程度上解决这样的问题。

首先为什么要分区?分区的目的是什么?

数据仓库的数据是海量数据,数据量大,如果将这些数据放在一起,维护起来非常困难,比如对于一个几亿条甚至更多记录的表中,如果要删除其中一些数据就非常的困难,而这种需求又是数据仓库中非常频繁的工作,数据仓库是历史数据,这样会经常的把一些过时的一个时间区间的数据删除备份或者挪走。比如交易流水记

录,比如设计在线保存2年,那2年前的数据必须定期维护掉。那么能不能就分表存储呢,可以,但分表存储会带来一个问题就是统一视图的问题,我们对历史数据分析就需要经常性的进行全盘查询,这样的操作在分表上就会是个痛苦的过程。

诸如Oracle、Ncr Teredata、IBM DB2的数据仓库产品都有分区表以及分区数据库来解决这些问题,在SQL Server的后续版本中也出现了分区表来解决这样的问题。

现在讨论的如何在SQL Server 2000上实现分区。

SQL Server 2000可以通过分表来实现存储大量数据,一般可以采取的分表条件是时间、区域等。然后通过创建分区视图,提供统一的查询入口,来解决大数据量的工作,数据维护可以针对底层的表进行,这样降低维护的压力。一般来说数据仓库项目不会存在在大表上更新数据的操作,但支持运营的数据仓库项目还是会存在更新数据的可能,所以可以更新的分区视图将是一个非常好的解决方案,能给操作数据的代码简便易读。

现在就推出SQL Server 2000的分区查询视图,分区查询视图就是通过union all将一组结构相同的数据链接起来的视图,创建脚本类似于:

create view v1 as

select c1, c2 from t1

union all

select c1, c2 from t2

这样的视图能够进行查询操作,但要让这个分区查询视图能够进行更新等操作,则必须满足如下一些条件:

1、视图中的每个select子句必须是相同,不可以使用各种聚类函数等产生衍生数据;

2、每个表中必须有主键,而且是需要在创建表时进行指定,不能是先创建表后在增加主键;

3、必须存在分区键,分区键必须存在约束性检查,保证某一个分区键值在且仅在一个表上,最好需要连续不交叉复盖全集,必须保证不交叉,且需要在创建表时指定,不能在建表之后修改以及增加约束,约束表达式使用between [MIN] and [MAX]。

举例:

create table lxx_p1 (

myid numeric(2) check (myid between 1 and 50),

myname varchar(100)

primary key (myid)

)

create table lxx_p2 (

myid numeric(2) check (myid between 51 and 99),

myname varchar(100)

primary key (myid)

)

go

create view lxx_p

as

select myid, myname from lxx_p1

union all

select myid, myname from lxx_p2

go

如此对待lxx_p就向一张普通的表一样了,可以新增、删除以及修改其中的记录了。insert into lxx_p (myid, myname) values(1, 'lxx')

insert into lxx_p (myid, myname) values(51, 'ddd')

insert into lxx_p (myid, myname) values(91, 'aaa')

update lxx_p set mynam e = 'bbb' where myid=51

update lxx_p set myid = 12 where myid=91

delete from lxx_p where myname='aaa'

分区建立好以后,修改分区视图的表,重新建立分区视图更新时产生如下错误

Location: rlupd.cpp:9972

Expression: pcs && pcs->FGetColCons()

SPID: 51

Process ID: 5264

消息3624,级别 20,状态 1,第 1 行

系统断定检查已失败。有关详细信息,请查看SQL Server 错误日志。通常,断定失败是由软件错误或数据损坏导致的。若要检查数据库是否已损坏,请考虑运行DBCC CHECKDB。如果您同意在安装过程中将转储发送到Microsoft,则将向Microsoft 发送微型转储。更新可能在Microsoft 的最新Service Pack 或技术支持部门的QFE 中提供。

消息0,级别20,状态0,第0 行

当前命令发生了严重错误。应放弃任何可能产生的结果。

SQl分区表,视图,索引,函数基础理解

SQL发展的版本:sql6.5--->sql7.0--->sql2000--->sql2005---->sql2008

对于分区存储,在2000之前都是采用多个物理表,然后用union all连接建立视图来实现的,对效率没有太大的提高,sql2005做了巨大的改进,真正意义上实现了表的分区存储,避免行不能跨页空间浪费的问题,建立分区存储主要步骤:

分区函数(与列对应)---> 分区方案(存储位置)--->分区表

创建分区函数,分区方案,分区表语法

类型:表分区,函数分区,索引分区,视图分区,在大数据量操作时价值非常高

例子:

adventureHistory 历史分区表,adventureWOrk存放当前数据的分区表

通过语法,把每个月的需归档数据转移到历史分区表中,避免数据复制速度慢,只需修改头指针实现,

这样,循环把每月历史数据转移,

实现归档管理,

硬盘主引导记录(MBR)及其结构详解

硬盘主引导记录(MBR)及其结构详解 硬盘的0柱面、0磁头、1扇区称为主引导扇区,FDISK程序写到该扇区的内容称为主引导记录(MBR)。该记录占用512个字节,它用语硬盘启动时将系统控制权交给用户指定的,并在分区表中登记了的某个操作系统区。 1.MBR的读取 硬盘的引导记录(MBR)是不属于任何一个操作系统,也不能用操作系统提供的磁盘操作命令来读取它。但我们可以用ROM-BIOS中提供的INT13H的2号功能来读出该扇区的内容,也可用软件工具Norton8.0中的DISKEDIT.EXE来读取。 用INT13H的读磁盘扇区功能的调用参数如下: 入口参数:AH=2 (指定功能号) AL=要读取的扇区数 DL=磁盘号(0、1-软盘;80、81-硬盘) DH=磁头号 CL高2位+CH=柱面号 CL低6位=扇区号 CS:BX=存放读取数据的内存缓冲地址 出口参数:CS:BX=读取数据存放地址 错误信息:如果出错CF=1 AH=错误代码 用DEBUG读取位于硬盘0柱面、0磁头、1扇区的操作如下: A>DEBUG -A 100 XXXX:XXXX MOV AX,0201 (用功能号2读1个扇区) XXXX:XXXX MOV BX,1000 (把读出的数据放入缓冲区的地址为CS:1000) XXXX:XXXX MOV CX,0001 (读0柱面,1扇区) XXXX:XXXX MOV DX,0080 (指定第一物理盘的0磁头) XXXX:XXXX INT 13 XXXX:XXXX INT 3 XXXX:XXXX (按回车键) -G=100 (执行以上程序段) -D 1000 11FF (显示512字节的MBR内容)

磁盘和文件系统管理(二)实验报告

制作LVM卷的步骤: 裸设备---分区---PV---VG---LV---格式化---挂载使用 [root@localhost ~]# pvcreate /dev/sdb1 /dev/sdc1 建立pv物理卷 Physical volume "/dev/sdb1" successfully created Physical volume "/dev/sdc1" successfully created [root@localhost ~]# vgcreate hehe /dev/sdb1 /dev/sdc1 建立vg卷组 Volume group "hehe" successfully created [root@localhost ~]# lvcreate -L 30G -n xixi hehe 建立lv逻辑卷 Logical volume "xixi" created [root@localhost ~]# mkfs.ext3 /dev/hehe/xixi 格式化为ext3的文件系统mke2fs 1.39 (29-May-2006) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) [root@localhost ~]# mkdir /lvm 创建lvm文件夹 [root@localhost ~]# mount /dev/hehe/xixi /lvm 挂载lvm逻辑卷到lvm文件夹下使用[root@localhost ~]# cd /lvm 切换 [root@localhost lvm]# ls 查看 lost+found [root@localhost lvm]# df -hT 查看磁盘使用情况 文件系统类型容量已用可用已用% 挂载点 /dev/mapper/VolGroup00-LogVol00 ext3 38G 3.1G 33G 9% / /dev/sda1 ext3 99M 11M 83M 12% /boot tmpfs tmpfs 177M 0 177M 0% /dev/shm /dev/mapper/hehe-xixi ext3 30G 173M 28G 1% /lvm [root@localhost lvm]# lvextend -L +3G /dev/hehe/xixi 扩展lvm卷的空间Extending logical volume xixi to 33.00 GB Logical volume xixi successfully resized [root@localhost lvm]# resize2fs /dev/hehe/xixi 重新识别文件系统的大小

深入理解硬盘分区表

深入理解硬盘分区表 相信听说过硬盘MBR、硬盘分区表、DBR的朋友一定都不少。可是,你清楚它们分别起什么作用吗?它们的具体位置又在哪里呢?硬盘上的MBR只有一份吗?什么是硬盘逻辑锁?如何制造和破解它呢??别急,让我们一步步来搞清楚吧! ==必备基础知识:== 以下先介绍一下有关扇区编号的基本知识:介绍一下有关硬盘扇区编号规则的3个易混淆的术语“物理扇区编号”、“绝对扇区编号”和“逻辑扇区编号”。 我们都知道硬盘扇区的定位有两种办法: 1、直接按柱面、磁头、扇区3者的组合来定位(按这种编号方式得到的扇区编号称为物理扇区编号); 2、按扇区编号来定位(又分“绝对扇区编号“和“逻辑扇区编号“两种)。 这两种定位办法的换算关系如下图:(设图中所示硬盘每道扇区数均为63)

如图所示,由于目前大多数硬盘采用的是一种“垂直分区结构“,故左图一磁头数为2、盘片数为1的硬盘,图中0磁头所对扇区的表示方法就有2种,即:0柱面0磁头1扇区=绝对0扇区,而1磁头所对扇区的表示方法也有2种,即:1柱面0磁头1扇区=绝对63扇区。如果是如右图所示磁头数为4、盘片数为2的硬盘,那么则顺着垂直于盘片的箭头线方向进行如图的绝对扇区的编号。 以上,我们说了物理扇区、绝对扇区的编号方式,而逻辑扇区编号由于是操作系统采用的扇区编号方式,而操作系统只能读取分区内部的数据内容,故逻辑扇区是从各分区内的第一个扇区开始编号,如我们下文对mbr的说明可以知道:mbr这个扇区所在硬盘磁道是不属于分区范围内的,紧接着它后面的才是分区的内容,因此一般来说绝对63扇区= c:分区逻辑1扇区。以下让我们总结一下3种编号方式的不同: 编号方式表示方法采用该种方式编号的对象起始编号 物理扇区编号 0柱面0磁头1扇区 BIOS内置中断服务程序 0柱面0磁头1扇区 绝对扇区编号绝对X扇区人们为方便所采用的办法绝对0扇区

SQLserver创建分区表

如果你的数据库中某一个表中的数据满足以下几个条件,那么你就要考虑创建分区表了。 1、数据库中某个表中的数据很多。很多是什么概念?一万条?两万条?还是十万条、一百万条?这个,我觉得是仁者见仁、智者见智的问题。当然数据表中的数据多到查询时明显感觉到数据很慢了,那么,你就可以考虑使用分区表了。如果非要我说一个数值的话,我认为是1亿条。 2、但是,数据多了并不是创建分区表的惟一条件,哪怕你有一千万条记录,但是这一千万条记录都是常用的记录,那么最好也不要使用分区表,说不定会得不偿失。只有你的数据是分段的数据,那么才要考虑到是否需要使用分区表。 3、什么叫数据是分段的?这个说法虽然很不专业,但很好理解。比如说,你的数据是以年为分隔的,对于今年的数据而言,你常进行的操作是添加、修改、删除和查询,而对于往年的数据而言,你几乎不需要操作,或者你的操作往往只限于查询,那么恭喜你,你可以使用分区表。换名话说,你对数据的操作往往只涉及到一部分数据而不是所有数据的话,那么你就可以考虑什么分区表了。 那么,什么是分区表呢? 简单一点说,分区表就是将一个大表分成若干个小表。假设,你有一个销售记录表,记录着每个每个商场的销售情况,那么你就可以把这个销售记录表按时间分成几个小表,例如说5个小表吧。2009年以前的记录使用一个表,2010年的记录使用一个表,2011年的记录使用一个表,2012年的记录使用一个表,2012年以后的记录使用一个表。那么,你想查询哪个年份的记录,就可以去相对应的表里查询,由于每个表中的记录数少了,查询起来时间自然也会减少。 但将一个大表分成几个小表的处理方式,会给程序员增加编程上的难度。以添加记录为例,以上5个表是独立的5个表,在不同时间添加记录的时候,程序员要使用不同的SQL 语句,例如在2011年添加记录时,程序员要将记录添加到2011年那个表里;在2012年添加记录时,程序员要将记录添加到2012年的那个表里。这样,程序员的工作量会增加,出错的可能性也会增加。 使用分区表就可以很好的解决以上问题。分区表可以从物理上将一个大表分成几个小表,但是从逻辑上来看,还是一个大表。 接着上面的例子,分区表可以将一个销售记录表分成五个物理上的小表,但是对于程序员而言,他所面对的依然是一个大表,无论是2010年添加记录还是2012年添加记录,对于程序员而言是不需要考虑的,他只要将记录插入到销售记录表——这个逻辑中的大表里就行了。SQL Server会自动地将它放在它应该呆在的那个物理上的小表里。 同样,对于查询而言,程序员也只需要设置好查询条件,OK,SQL Server会自动将去相应的表里查询,不用管太多事了。

硬盘分区表知识——详解硬盘MBR .

硬盘是现在计算机上最常用的存储器之一。我们都知道,计算机之所以神奇,是因为它具有高速分析处理数据的能力。而这些数据都以文件的形式存储在硬盘里。不过,计算机可不像人那么聪明。在读取相应的文件时,你必须要给出相应的规则。这就是分区概念。 分区从实质上说就是对硬盘的一种格式化。当我们创建分区时,就已经设置好了硬盘的各项物理参数,指定了硬盘主引导记录(即Master Boot Record,一般简称为MBR)和引导记录备份的存放位置。而对于文件系统以及其他操作系统管理硬盘所需要的信息则是通过以后的高级格式化,即Format命令来实现。面、磁道和扇区硬盘分区后,将会被划分为面(Side)、磁道(Track)和扇区(Sector)。需要注意的是,这些只是个虚拟的概念,并不是真正在硬盘上划轨道。 先从面说起,硬盘一般是由一片或几片圆形薄膜叠加而成。我们所说,每个圆形薄膜都有两个“面”,这两个面都是用来存储数据的。按照面的多少,依次称为0面、1面、2面……由于每个面都专有一个读写磁头,也常用0头(head)、1头……称之。按照硬盘容量和规格的不同,硬盘面数(或头数)也不一定相同,少的只有2面,多的可达数十面。各面上磁道号相同的磁道合起来,称为一个柱面(Cylinder)。 上面我们提到了磁道的概念。那么究竟何为磁道呢?由于磁盘是旋转的,则连续写入的数据是排列在一个圆周上的。我们称这样的圆周为一个磁道。如果读写磁头沿着圆形薄膜的半径方向移动一段距离,以后写入的数据又排列在另外一个磁道上。根据硬盘规格的不同,磁道数可以从几百到数千不等;一个磁道上可以容纳数KB的数据,而主机读写时往往并不需要一次读写那么多,于是,磁道又被划分成若干段,每段称为一个扇区。一个扇区一般存放512字节的数据。扇区也需要编号,同一磁道中的扇区,分别称为1扇区,2扇区…… 计算机对硬盘的读写,处于效率的考虑,是以扇区为基本单位的。即使计算机只需要硬盘上存储的某个字节,也必须一次把这个字节所在的扇区中的512字节全部读入内存,再使用所需的那个字节。不过,在上文中我们也提到,硬盘上面、磁道、扇区的划分表面上是看不到任何痕迹的,虽然磁头可以根据某个磁道的应有半径来对准这个磁道,但怎样才能在首尾相连的一圈扇区中找出所需要的某一扇区呢?原来,每个扇区并不仅仅由512个字节组成的,在这些由计算机存取的数据的前、后两端,都另有一些特定的数据,这些数据构成了扇区的界限标志,标志中含有扇区的编号和其他信息。计算机就凭借着这些标志来识别扇区。硬盘的数据结构在上文中,我们谈了数据在硬盘中的存储的一般原理。为了能更深入地了解硬盘,我们还必须对硬盘的数据结构有个简单的了解。硬盘上的数据按照其不同的特点和作用大致可分为5部分:MBR区、DBR区、FAT区、DIR区和DATA区。

sqlserver2005+创建分区表+分区索引+注意事宜+分区索引

、分区索引 1. 分区表简介 使用分区表的主要目的,是为了改善大型表以及具有各种访问模式的表的可伸缩性和可管理性。 大型表:数据量巨大的表。? ?访问模式:因目的不同,需访问的不同的数据行集,每种目的的访问可以称之为一种访问模式。 分区一方面可以将数据分为更小、更易管理的部分,为提高性能起到一定的作用;另一方面,对于如果具有多个CPU的系统,分区可以是对表的操作通过并行的方式进行,这对于提升性能是非常有帮助的。 注意:只能在SQL Server Enterprise Edition 中创建分区函数。只有SQL Server Enterprise Edition 支 持分区。 2. 创建分区表或分区索引的步骤 可以分为以下步骤: 1. 确定分区列和分区数 2. 确定是否使用多个文件组 3. 创建分区函数 4. 创建分区架构(Schema) 5. 创建分区表 6. 创建分区索引 下面详细描述的创建分区表、分区索引的步骤。 2.1. 确定分区列和分区数 在开始做分区操作之前,首先要确定待分区表的访问模式,该模式决定了什么列适合做分区键。例如,对于销售数据,一般会先根据日期把数据范围限定在一个范围内,然后在这个基础上做进一步的查询,这样, 就可以把日期作为分区列。 确定了分区列之后,需要进一步确定分区数,亦即分区表中需要包含多少数据,每个分区的数据应该限定 在哪个范围。 2.2. 确定是否使用多个文件组 为了有助于优化性能和维护,应该使用文件组分离数据。一般情况下,如果经常对分区的整个数据集操作,则文件组数最好与分区数相同,并且这些文件组通常应该位于不同的磁盘上,再配合多个CPU,则SQL Server 可以并行处理多个分区,从而大大缩短处理大量复杂报表和分析的总体时间。 2.3. 创建分区函数 分区函数用于定义分区的边界条件,创建分区函数的语法如下: CREATE PARTITION FUNCTION partition_function_name ( input_parameter_type ) AS RANGE [ LEFT | RIGHT ] FOR VALUES ( [ boundary_value [ ,...n ] ] ) [ ; ] 参数说明: ?partition_function_name

Linux 管理磁盘和文件系统

管理磁盘和文件存储 一、实验目的 实验案例一:迁移/home分区并设置磁盘配额 实验案例二:创建并使用lvm逻辑卷 二、实验环境 迁移/home分区并设置磁盘配额 公司原来安装的RHEL5服务器采用了自动分区的方案,随着使用服务器的系统用户数量不断增多,根分区经常面临磁盘空间耗尽的情况,偶尔有几次还导致系统无法启动。为了解决这些问题,现需要为服务器新增加一块SCSI硬盘,并将用户“/home”中的数据迁移到该硬盘中,不能影响原有系统用户帐号的使用,并需要对指定用户启用磁盘配额。 创建并使用lvm逻辑卷 公司准备在internet中搭建邮件服务器(RHEL5系统平台),面向全国各地的员工及部分VIP客户提供电子邮箱空间。由于用户数量众多,邮件存储需要大量的空间,考虑到动态扩容的需要,计划增加两块SCSI硬盘并构建LVM逻辑卷(挂载到“/mailbox”目录下)专门用于存放邮件数据。 三、需求描述 迁移/home分区并设置磁盘配额 在虚拟中添加一块SCSI磁盘 在新硬盘中建立一个20G的分区,用于存放所有普通用户的宿主目录 新建的分区仍然挂载到“/home”目录下,需要导入系统中原有用户的数据 配置服务器在开机后自动挂载该分区,并支持用户、组磁盘配额 在“/home”文件系统中设置磁盘配额,限制用户jerry最多只能使用500M 磁盘空间,accp组的用户合计最多只能使用4G磁盘空间 创建并使用lvm逻辑卷 在虚拟机环境中,新添加两块SCSI硬盘设备,完成硬盘检测及分区,创建逻辑卷并基本于该逻辑卷建立EXT3文件系统,挂载到“/mailbox”目录下 四、实验步骤 迁移/home分区并设置磁盘 Step1关机后添加新硬盘,重新开机进入RHEL5系统 Step2分区格式化 (1)使用fdisk命令对硬盘进行分区,建立一个20G的主分区(“/dev/sdb1”)

GPT磁盘各分区作用详解

用于引导Windows的GPT磁盘(预装Win8电脑)各分 区作用详解 随着预装Win8电脑大量涌向市场,UEFI+GPT这一标准组合受到了更大范围的关注。UEFI+GPT无疑是未来的发展趋势,所以我们有必要先来了解一下用于引导Windows的GPT分区结构的磁盘中一些特殊分区的作用。 使用Windows安装程序默认创建的分区 当我们在GPT中安装Windows8/7,并且使用Windows安装程序对硬盘进行重分区操作 时默认将创建下表所示的几个分区。

的方法可参考《Diskpart工具应用两则:MBR/GPT分区转换& 基本/动态磁盘转换》。 当Windows 8 系统无法正常启动时也会自动故障转移至WinRE。 在Windows7中WinRE和Windows安装分区在同一个分区,并没有单独拿出来。Win8 中微软默认将WinRE和Windows 安装分区分离,目的应该是最大程度保证WinRE的可靠性。在MBR硬盘上安装Windows 8时,你会发现系统保留分区的大小由Win7时的100MB 扩大到了350MB,这多出来的空间就是用于保存WinRE映像的。 第二个分区是存放系统引导文件的分区,这是实现UEFI引导所必须的分区。 第三个MSR分区,这是微软保留分区,目前尚不清楚其具体作用。已知将基本磁盘转换为动态磁盘是该分区将发挥作用。 第四个就是我们安装系统是要选择的目标分区。其实际容量=你指定的容量-前面几个分区 容量。 如果只考虑系统的正常启动,那么EFI系统分区(第二个)和Windows安装分区(第四个分区)这两个分区是必须的。 预装Windows 8的品牌机默认分区(以联想某型号为例) 在预装Win8的品牌机中同样会看到上表中所示的这些分区,不过其大小可能会有所不同,同时你可能还会看到其他的隐藏分区。下表是联想某一型号预装Win8电脑默认的分区情况。

sqlserver集群部署

部署Microsoft SQL Server 2005 群集微软公司的 SQL Server 2005发布已经有一段时间了安装过程其实和 SQL 2000集群差别不大下面是某集团的SQL的故障转移集群安装报告本文主要总结SQL2005的群集部署调试环境1、主机硬件配置IBM X3850 操作系统Microsoft Windows Enterprise server2003 SP2 心跳网卡192.168.10.10 公网网卡60.190.81.138 MSCS IP60.190.81.132 WEB服务 IP60.190.81.141 SQL服务IP60.190.81.147 2、备机硬件配置IBM X3850 操作系统Microsoft Windows Enterprise server2003 SP2 心跳网卡192.168.10.20 公网网卡60.190.81.139 目标实现成功部署SQL Server 2005 群集 /HostName SQL2005/ IP60.190.81.147 群集实施1、我手上的SQL2005为企业中文版2CD。首先放入第一张盘点击“服务器组件、工具、联机丛书和示例”开始SQL2005的群集安装安装程序会自动检测当前是否为群集环境并为群集安装 准备。小提示MSCS默认环境下群集组资源中缺少MSDTC 组件所以需要先添加MSDTC后再开始SQL2005的群集安装否则会出现警告并停止MSDTC组件的安装重新安装COM 从控制面板的“添加或删除程序”中单击“添加/删除Windows 组件”。在“Windows 组件向导”中不对选择做任何更改单击“下一步”。一直单击以完成向导。如何检查COM组件是否安装无错在Windows 桌面上单击“开始”然后单击“运行”。

磁盘管理和文件系统管理

实验三磁盘管理和文件系统管理 一、 掌握Windows Server 2003系统中的磁盘管理和文件系统管理,包括基本磁盘中分区的创建,动态磁盘中各种动态卷的创建及DFS的配置。 二、实验环境: Pentium 550Hz以上的CPU。 建议至少256MB的内存 建议硬盘至少2GB,并有1GB空闲空间。 三、实验内容: 磁盘的管理。 文件系统的管理。 四、实验步骤: 1.在虚拟机中再添加两块磁盘,如图1-1。 图1-1 2.使用磁盘管理控制台,在基本磁盘中新建主磁盘分区、扩展磁盘分区和逻辑驱动器,并对已经创建好的分区做格式化、更改磁盘驱动器号及路径等几个操作,如图1-2。 创建主磁盘分区的步骤如下: (1)启动【磁盘管理】。 (2)选取一块未指派的磁盘空间,如下图所示,这里我们选择“磁盘1”。 (3)用鼠标右击该空间,在弹出的菜单中选择【创建磁盘分区】,在出现“欢迎使用创建磁盘分区向导”对话框时,单击【下一步】按钮。

图1-2 (4)【选择分区类型】对话框中,选择【主磁盘分区】,单击【下一步】按钮。 (5)在【指定分区大小】对话框中,输入该主磁盘分区的容量,此例中输入“500MB”。 完成后单击【下一步】按钮。 (6)下图所示的对话框中,完成其中的单选框选择,单击【下一步】按钮,出现格式化分区对话框。设置驱动器号为“H”。 (7)在【格式化分区】对话框中,可以选择是否格式化该分区;格式化该分区的方式 设置,如设置①使用的文件系统为NTFS;②分配单位大小:为默认值;③卷标为默认值; ④执行快速格式化⑤不启动文件及文件夹压缩功能。 (8)完成以上内容设置,系统进入【完成】对话框,并列出用户所设置的所有参数。 单击【完成】按钮,开始格式化该分区。

sqlserver函数大全

在SQL Server在线图书或者在线帮助系统中,函数的可选参数用方括号表示。在下列的CONVERT()函数例子中,数据类型的length和style参数是可选的: CONVERT (data-type [(length)], expression[,style]) 可将它简化为如下形式,因为现在不讨论如何使用数据类型: CONVERT(date_type, expression[,style]) 根据上面的定义,CONVERT()函数可接受2个或3个参数。因此,下列两个例子都是正确的: SELECT CONVERT(Varchar(20),GETDATE()) SELECT CONVERT(Varchar(20),GETDATE(), 101) 这个函数的第一个参数是数据类型Varchar(20),第2个参数是另一个函数GETDATE()。GETDATE()函数用datetime数据类型将返回当前的系统日期和时间。第2条语句中的第3个参数决定了日期的样式。这个例子中的101指以mm/dd/yyyy格式返回日期。本章后面将详细介绍GETDATE()函数。即使函数不带参数或者不需要参数,调用这个函数时也需要写上一对括号,例如GETDATE()函数。注意在书中使用函数名引用函数时,一定要包含括号,因为这是一种标准形式。 确定性函数 由于数据库引擎的内部工作机制,SQL Server必须根据所谓的确定性,将函数分成两个不同的组。这不是一种新时代的信仰,只和能否根据其输入参数或执行对函数输出结果进行预测有关。如果函数的输出只与输入参数的值相关,而与其他外部因素无关,这个函数就是确定性函数。如果函数的输出基于环境条件,或者产生随机或者依赖结果的算法,这个函数就是非确定性的。例如,GETDATE()函数是非确定性函数,因为它不会两次返回相同的值。为什么要把看起来简单的事弄得如此复杂呢?主要原因是非确定性函数与全局变量不能在一些数据库编程对象中使用(如用户自定义函数)。部分原因是SQL Server缓存与预编译可执行对象的方式。例如,即席查询可以使用任何函数,不过如果打算构建先进的、可重用的编程对象,理解这种区别很重要。 以下这些函数是确定性的: ●?AVG()(所有的聚合函数都是确定性的) ●?CAST() ●?CONVERT() ●?DATEADD() ●?DATEDIFF() ●?ASCII() ●?CHAR() ●?SUBSTRING() 以下这些函数与变量是非确定性的: ●?GETDATE()

易我分区表医生使用教程解析

易我分区表教程 2010-01-26 19:30 《易我分区表医生》是一款修复硬盘分区的软件,使用该工具可以轻易的恢复删除和丢失的分区。下面,我们就来看看如何使用它对我们的分区表等进行修复。 一.有关MBR、分区表、DBR的基本知识 1.硬盘MBR(硬盘主引导记录)及硬盘分区表介绍 硬盘MBR就是我们经常说的“硬盘主引导记录”,它是在对硬盘进行分区的时候写入硬盘的。以下是MBR的组成: 这3部分的大小加起来正好是512字节=1个扇区(硬盘每扇区固定为512个字节),因此,人们又形象地把MBR称为“硬盘主引导扇区”。 2.硬盘DBR(DOS引导记录)介绍 硬盘(这里硬盘指逻辑磁盘,不同于物理磁盘,所有分区内逻辑扇区,都从“0”开始编号,直到最大值-1,涵盖整个分区)的0扇区叫做DOS引导扇区,又称为BOOT区。由FORMAT高级格式化命令将DOS引导记录(DBR)写在该扇区,主要功能是完成系统的自举。 综上所述,我们知道硬盘MBR负责总管硬盘分区,只有分区工具才能对它进行读写;而DBR则负责管理某个具体的分区,它是用操作系统的高级格式化命令(如FORMAT)来写入硬盘的。在系统启动时,最先读取的硬盘信息是MBR,然后由MBR内的主引导程序读出DBR,最后才由DBR内的DOS引导代码读取操作系统的引导程序,其中任何一个环节出了问题,操作系统都无法正常启动成功,如果是MBR部分出了问题即使只是”55AA”标志字丢失或被改为其他值,通常都会出现“无效分区表“、逻辑盘丢失、启动死机等现象;而如果是DBR部分出了问题,通常会出现“未格式化的分区”的错误提示。 近距离观察MBR、DBR: 现在我们用《易我分区表医生3.1.0》这款软件来观察下MBR、DBR。 1、观察MBR: 首先可以在下载免费软件《易我分区表医生3.1.0》,安装运行后,选“扇

SQL Server 创建表分区

SQL Server 创建表分区原文转自:https://www.doczj.com/doc/1e15587097.html,/panchunting/p/SQLServer_TablePartition.html 先准备测试表 CREATETABLE[dbo].[Employee] ( EmployeeNo INT IDENTITY(1,1) PRIMARYKEY, EmployeeName NVARCHAR(50) NULL ); 插入一些数据 INSERT Employee DEFAULTVALUES; GO10000 UPDATE Employee set EmployeeName='Employee '+CONVERT(VARCHAR, EmployeeNo) 创建文件组 创建文件(为了性能,可以设定文件Path分布在不同的磁盘分区上) 创建分区准备

选择分区列

创建分区函数 创建分区框架

定义边界值,分区,因为有5个边界值,所以需6个分区

产生的脚本文件(换句话说上面的步骤等同于下面的语句) USE[TestingDB] GO BEGINTRANSACTION CREATE PARTITION FUNCTION[EmpFunction](int) AS RANGE RIGHT FORVALUES (N'2000', N'4000', N'6000', N'8000', N'10000') CREATE PARTITION SCHEME [FunScheme]AS PARTITION [EmpFunction]TO ([FileGroup1], [FileGroup2], [FileGroup3], [FileGroup4], [FileGroup5], [PRIMARY]) ALTERTABLE[dbo].[Employee]DROPCONSTRAINT[PK__Employee__7AD0F1B633D4B598] ALTERTABLE[dbo].[Employee]ADDPRIMARYKEYCLUSTERED ( [EmployeeNo]ASC )WITH (PAD_INDEX =OFF, STATISTICS_NORECOMPUTE =OFF, SORT_IN_TEMPDB =OFF, IGNORE_DUP_KEY =OFF, ONLINE =OFF, ALLOW_ROW_LOCKS =ON, ALLOW_PAGE_LOCKS =ON) ON[FunScheme]([EmployeeNo]) COMMITTRANSACTION 执行上面的SQL语句 其中语句ON [FunScheme]([EmployeeNo])是关键,表明了表Employee依赖分区框架FunScheme来进行分区,分区的列为EmployeeNo 而分区框架有依赖于分区函数,即分区表依赖分区框架,分区框架又依赖于分区函数 查看表分区结果

最新硬盘分区表详解教学提纲

硬盘分区表详解 硬盘主引导扇区= 硬盘主引导记录(MBR)+ 硬盘分区表(DPT) ----------------------------------------------------------------------------------------------------------------------物理位置:0面0道1扇区(clindyer 0, side 0, sector 1) 大小:512字节 其中:MBR 446字节(0000--01BD),DPT 64字节(01BE--01FD),结束标志2字节(55 AA)功能:MBR通过检查DPT分区信息引导系统跳转至DBR; 读取: 使用NORTON DISKEDIT, 在OBJECT菜单中选择DRIVE——>PHYSICAL DISK-—HARD DISK, 然后, 在OBJECT菜单中选择DISK PARTITION TABLE即可读取, 并使用TOOLS菜单中的WRITE OBJECT TO 选项存入指定文件备份; 写入: 使用NORTON DISKEDIT, 在OBJECT菜单中选择DRIVE——>FLOOPY DISK, 选择备份的DPT 文件, 然后使用TOOLS菜单中的WRITE OBJECT TO——>PHYSICAL SECTOR 选项写入001 (clindyer 0, side 0, sector 1); 详解: ---------------------------------------------------------------------------------------------------------------------- 000H--08AH MBR启动程序(寻找开机分区) 08BH--0D9H MBR启动字符串 0DAH--1BCH 保留("0") 1BEH--1FDH 硬盘分区表 1FEH--1FFH 结束标志(55AA)

SD卡文件系统

SD卡的体系结构将在这里叙述。它定义了数据区域的逻辑结构。对于如分割数据区域的区别,第一分区有主启动记录和分区表。SD卡文件系统使用FAT文件系统(ISO/IEC 9293)并支持FAT12和FAT16文件系统格式。 39 40 主启动记录和分区表 0到445 主启动记录 此间内容不被叙述。 446到461 分区表(第一部分) 这个部分叙述了第一分区在体系中的信息。这个分区意味着使用者可以没有相互的证明使用普通区域。 462到477 分区表(第二部分) 如果体系只有一个分区,此间内容为0。 478到493 分区表(第三部分) 如果体系只有一个分区,此间内容为0。 494到509 分区表(第四部分)

如果体系只有一个分区,此间内容为0。 510到511 信号字(Signature W ord) 此处记录了0x55(BP 510) 和 0xaa。 如果以SD卡作为启动(盘),记录0x80,否则记录0x00。 BP1 启始磁头 此处叙述分区的起始磁头。 BP2和3 启始柱面和扇区 此处将叙述分区的启始柱面和扇区。6个位 (在BP2中0到5位) ,将作为启始扇区。10个位(在 BP 2 中的6和7位,在BP3中的0到7的)将作为启始柱面。 BP4 系统ID号 此处叙述文件系统类型。如果分区大小是少于32680个扇区,它将被记录0x01。如果少于65536个扇区,它将被记录0x04。否则,它将被记录0x06。 BP5 终止磁头 此处记录终止磁头。 BP6和7 终止柱面和扇区 此处记录终止柱面和扇区。6个位(在BP6中的0到位5位)作为结束扇区。10个位(在BP6中的位6和7位,在BP7中的0到7位)作为结束柱面。 BP8到11 Relative Sector 此处叙述这此分区的起始扇区之前存在的数目。 BP12到15总扇区 此处记录总扇区数量。 申请分配表 (FAT) FAT将包含一个格式ID号和一些项目,每个使用者区域的指示群集。这些项目连续的将是有限的出发由于 2 而且项目数目将和~相等对应的群集群集数目。每个项目在FAT 中将指示对应的群集状态。 FAT 项目将用来识别被分派到每个文件的群集组。

DOS下用FDISK给您的硬盘分区详解

发现有好多人不会在DOS下分区,或是用光盘分不了。我曾经有一台机器,C:/FAT32 5G D:/NTFS 15G E:/FAT32 25G F:/FAT32 25G,也不知道当初哪个高人做的,结果从装从分时候,C盘的5G和其他的75G怎么也洗不到一起了,于是找了张98DOS启动盘,用DOS分了。现在贴出来,和大家分享一下。(自己懒得写,找了个达人级的帖子,够详细的了) DOS下用FDISK给您的硬盘分区详解 作者:sporty 注:这里讨论的硬盘分区是指我们常用的个人电脑操作系统MS WINDOWS 的分区即DOS分区,在下面的讨论均以分区代之,这里不涉及LINUX格式分区,LINUX的FDISK分区工具将在往后另贴介绍。 众所周知,我们所用的计算机的主要外储存器是硬盘了并且硬盘在计算机里有效运转还要必须的程序的。但是,要有效地让该程序运转我们还得给硬盘分区。在计算机发展到今天,硬盘分区工具也很多了,除了最被广泛使用的MS 的DOS FDISK之外还有很多别的工具。例如:我们常用的非常优秀的PQ PARTITION MAGIC和一些也很多人用的SFDISK和DISKMAN等。现在我们个人电脑用的操作系统都是MS WINDOWS的多,MS WINDOWS你也装了不少了吧~~!呵呵:-)喜欢DIY的您,那也不会对MS的DOS硬盘分区工具FDISK不了解吧?哦,你对那东东还是一知半解?不要紧,请跟我来,我来给你一一介绍,看我的介绍你一定可以把您的硬盘闹个翻了。呵呵:-)一般情况下,我们给硬盘分区遇到的无非也就是有两种情况。1、全新硬盘分

区。2、使用过已有分区的硬盘做重新分区。下面我们分别对这两种情况做详细的介绍: 操作必备硬软件: 1、能跑MS WINDOWS并且带有软驱的个人电脑一台 2、MS WONDOWS 98/ME启动软盘一张 一、全新硬盘分区(下面的介绍是假设你的电脑所有必须硬件安装完好) 1、在做FDISK分区之前,检查你的电脑主板的CMOS启动顺序是以A::/为首选启动项。 2、放入MS WONDOWS 98/ME启动软盘到软驱然后打开电脑电源。 3、等到启动完毕出现A:\\>提示符时,敲入FIDSK,全部显示为A:\\>FDISK 然后回车。 4、在回车后,紧接着会出现如下程序执行前的询问界面: Your computer has a disk larger than 512 MB. This version of Windows includes improved support for large disks, resulting in more efficient use of disk space on large drives, and allowing disks over 2 GB to be formatted as a single drive. IMPORTANT: If you enable large disk support and create any new drives on this disk, you will not be able to access the new drive(s) using other operating systems, including some versions of Windows 95 and Windows NT, as well as earlier versions of Windows and MS-DOS. In addition, disk utilities that were not designed explicitly for the FAT32 file system will not be able to work with this disk. If you need to access this disk with other operating systems or older disk utilities, do not enable large drive support. Do you wish to enable large disk support (Y/N)...........? [Y] 至于上面的询问内容说些什么,稍有英文功底的您我想你不会不知道了吧~!这里就不做详细的介绍了。简单扼要地说说主要的吧:这个FDISK是可供选

SQL Server 2008如何创建分区表

SQL Server 2008中的分区表 如果你的数据库中某一个表中的数据满足以下几个条件,那么你就要考虑创建分区表了。 1、数据库中某个表中的数据很多。很多是什么概念?一万条?两万条?还是十万条、一百万条?这个,我觉得是仁者见仁、智者见智的问题。当然数据表中的数据多到查询时明显感觉到数据很慢了,那么,你就可以考虑使用分区表了。如果非要我说一个数值的话,我认为是100万条。 2、但是,数据多了并不是创建分区表的惟一条件,哪怕你有一千万条记录,但是这一千万条记录都是常用的记录,那么最好也不要使用分区表,说不定会得不偿失。只有你的数据是分段的数据,那么才要考虑到是否需要使用分区表。 3、什么叫数据是分段的?这个说法虽然很不专业,但很好理解。比如说,你的数据是以年为分隔的,对于今年的数据而言,你常进行的操作是添加、修改、删除和查询,而对于往年的数据而言,你几乎不需要操作,或者你的操作往往只限于查询,那么恭喜你,你可以使用分区表。换名话说,你对数据的操作往往只涉及到一部分数据而不是所有数据的话,那么你就可以考虑什么分区表了。 那么,什么是分区表呢? 简单一点说,分区表就是将一个大表分成若干个小表。假设,你有一个销售记录表,记录着每个每个商场的销售情况,那么你就可以把这个销售记录表按时间分成几个小表,例如说5个小表吧。2009年以前的记录使用一个表,2010年的记录使用一个表,2011年的记录使用一个表,2012年的记录使用一个表,2012年以后的记录使用一个表。那么,你想查询哪个年份的记录,就可以去相对应的表里查询,由于每个表中的记录数少了,查询起来时间自然也会减少。 但将一个大表分成几个小表的处理方式,会给程序员增加编程上的难度。以添加记录为例,以上5个表是独立的5个表,在不同时间添加记录的时候,程序员要使用不同的SQL 语句,例如在2011年添加记录时,程序员要将记录添加到2011年那个表里;在2012年添

GPT分区表详解

GPT分区表详解 全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个实体硬盘的分区结构。它是可扩展固件接口标准的一部分,用来替代BIOS中的主引导记录分区表。但因为MBR 分区表不支持容量大于2.2TB(2.2 ×1012字节)的分区,所以也有一些BIOS系统为了支持大容量硬盘而用GPT分区表取代MBR分区表。GPT分区表支持最多9.4ZB(9.4 ×1021字节)的硬盘和分区。下面为GPT分区表的结构图: GPT分区表的结构。上图中,每个逻辑块(LBA)为512字节,每个分区的记录为128字节。负数的LBA地址表示从最后的块开始倒数,?1表示最后一个块。 GPT分区表的特点 在MBR硬盘中,分区信息直接存储于主引导记录(MBR)中(主引导记录中还存储着系统的引导程序)。但在GPT硬盘中,分区表的位置信息储存在GPT头中。但出于兼容性考虑,硬盘的第一个扇区仍然用作MBR,之后才是GPT头。 跟现代的MBR一样,GPT也使用逻辑区块地址(LBA)取代了早期的CHS寻址方式。传统MBR信息存储于LBA 0,GPT头存储于LBA 1,接下来才是分区表本身。64位Windows 操作系统使用16,384字节(或32扇区)作为GPT分区表,接下来的LBA 34是硬盘上第一个分区的开始。 传统MBR (LBA 0) 在GPT分区表的最开头,处于兼容性考虑仍然存储了一份传统的MBR,用来防止不支持GPT的硬盘管理工具错误识别并破坏硬盘中的数据,这个MBR也叫做叫做保护MBR。在支持从GPT启动的操作系统中,这里也用于存储第一阶段的启动代码。在这个MBR中,只有一个标识为0xEE的分区,以此来表示这块硬盘使用GPT分区表。不能识别GPT硬盘的操作系统通常会识别出一个未知类型的分区,并且拒绝对硬盘进行操作,除非用户特别要

Linux文件系统和分区

1.Ubuntu文件结构 /bin bin是Binary的缩写。存放系统中最常用的可执行文件(二进制)。 /boot 这里存放的是linux内核和系统启动文件,包括Grub、lilo启动器程序。 /dev dev是Device(设备)的缩写。该目录存放的是Linux的外部设备,如硬盘、分区、键盘、鼠标、usb等。 /etc 这个目录用来存放所有的系统管理所需要的配置文件和子目录,如passwd、hostname等。 /lib 存放共享的库文件,包含许多被/bin和/sbin中程序使用的库文件。 /lost+found 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些零散文件。 /media ubuntu系统自动挂载的光驱、usb设备,存放临时读入的文件。 /mnt 作为被挂载的文件系统的挂载点。 /opt 作为可选文件和程序的存放目录,主要被第三方开发者用来简易安装和卸载他们的软件。 /proc 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这里存放所有标志为文件的进程, 比较cpuinfo存放cpu当前工作状态的数据。 /sbin s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序,如系统管理、目录查询等关键命令文件。 / srv 存放系统所提供的服务数据。 /sys 组自豪系统设备和文件层次结构,并向用户程序提供详细的内核数据信息。 /tmp 这个目录是用来存放一些临时文件的,所有用户对此目录都有读写权限。 /usr 存放与系统用户有关的文件和目录。 /usr/X11R6 存放X-Windows的目录; /usr/bin 用户和管理员的标准命令; /usr/sbin 存放root超级用户使用的管理程序;

相关主题
文本预览
相关文档 最新文档