



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SQL Server 2000里的分区 -(SQL Server 2005里面的分区技术,为大部分朋友所熟知,但对于SQL Server 2000里面的表分区,很多朋友可能有些迷糊,本方将为大家描述一下SQL Server 2000及SQL Server 20005的分区技术。其实SQL Server 2000里面本没有真正的分区,但为了弥补这一缺陷,人们利用视图和触发器的组合,创造出一种分区方案,对于这样种分区方案,姑且称之为“伪分区”。) - -准备1 SELECT * INTO CustomersGer FROM Customers WHERE Customers.Country=Germany SELECT * INTO CustomersMex FROM Customers WHERE Customers.Country=Mexico GO -准备2 CREATE VIEW v_Customers_Ger_Mex AS SELECT * FROM CustomersGer UNION SELECT * FROM CustomersMex GO -创建INSTEAD OF触发器 CREATE TRIGGER tr_Customers_Update ON v_Customers_Ger_Mex INSTEAD OF UPDATE AS DECLARE Country nvarchar(15) SET Country=(SELECT Country FROM inserted) IF Country=Germany BEGIN UPDATE CustomersGer SET CustomersGer.Phone=Inserted.Phone FROM CustomersGer JOIN Inserted ON CustomersGer.CustomerID=Inserted.CustomerID END ELSE IF Country=Mexico BEGIN UPDATE CustomersMex SET CustomersMex.Phone=Inserted.Phone FROM CustomersMex JOIN Inserted ON CustomersMex.CustomerID=Inserted.CustomerID END GO -测试 UPDATE v_Customers_Ger_Mex SET Phone=030-007xfxx WHERE CustomerID=ALFKI SELECT CustomerID,Phone FROM v_Customers_Ger_Mex WHERE CustomerID=ALFKI SELECT CustomerID,Phone FROM CustomersGer WHERE CustomerID=ALFKI SELECT CustomerID,Phone FROM CustomersMex WHERE CustomerID=ALFKI GO - - SQL Server 2005里的分区 - -创建实验用数据库 USE master CREATE DATABASE Sales ON PRIMARY ( NAME = Sales_Data, FILENAME=C:DatabasesSales_dat.mdf, SIZE=3MB, MAXSIZE=10MB, FILEGROWTH=10% ), FILEGROUP FG1 ( NAME = File1, FILENAME = C:DatabasesFile1_dat.ndf, SIZE = 1MB, MAXSIZE = 10MB, FILEGROWTH = 10% ), FILEGROUP FG2 ( NAME = File2, FILENAME = C:DatabasesFile2_dat.ndf, SIZE = 1MB, MAXSIZE = 10MB, FILEGROWTH = 10% ), FILEGROUP FG3 ( NAME = File3, FILENAME = C:DatabasesFile3_dat.ndf, SIZE = 1MB, MAXSIZE = 10MB, FILEGROWTH = 10% ) LOG ON ( NAME = Sales_Log, FILENAME = C:DatabasesSales_Log.ldf, SIZE = 1MB, MAXSIZE = 10MB, FILEGROWTH = 10% ) -创建分区函数,假定当前为2002年 USE Sales CREATE PARTITION FUNCTION pf_OrderDate (datetime) AS RANGE RIGHT FOR VALUES (2003/01/01, 2004/01/01) GO -USE Sales -ALTER PARTITION FUNCTION pf_OrderDate () -SPLIT RANGE (2005/01/01) -GO -创建分区方案 USE Sales GO CREATE PARTITION SCHEME ps_OrderDate AS PARTITION pf_OrderDate TO (FG1, FG2, FG3) GO -创建实验用数据表,并将其绑定到分区方案上 USE Sales GO CREATE TABLE dbo.Orders ( OrderID int identity(10000,1), OrderDate datetime NOT NULL, CustomerID int NOT NULL, CONSTRAINT PK_Orders PRIMARY KEY (OrderID, OrderDate) ) ON ps_OrderDate (OrderDate) GO CREATE TABLE dbo.OrdersHistory ( OrderID int identity(10000,1), OrderDate datetime NOT NULL, CustomerID int NOT NULL, CONSTRAINT PK_OrdersHistory PRIMARY KEY (OrderID, OrderDate) ) ON ps_OrderDate (OrderDate) GO - SELECT * FROM sys.partition_schemes - SELECT * FROM sys.partitions -向数据表中写入2002年的范例数据 USE Sales GO INSERT INTO dbo.Orders (OrderDate, CustomerID) VALUES (2002/6/25, 1000) INSERT INTO dbo.Orders (OrderDate, CustomerID) VALUES (2002/8/13, 1000) INSERT INTO dbo.Orders (OrderDate, CustomerID) VALUES (2002/8/25, 1000) INSERT INTO dbo.Orders (OrderDate, CustomerID) VALUES (2002/9/23, 1000) GO SELECT * FROM Orders SELECT * FROM dbo.OrdersHistory GO -2003年年初利用分区交换执行快速的数据归档 USE Sales GO ALTER TABLE dbo.Orders SWITCH PARTITION 1 TO dbo.OrdersHistory PARTITION 1 GO SELECT * FROM Orders SELECT * FROM dbo.OrdersHistory GO -可以通过以下代码确认数据归档是否成功: -SELECT * FROM dbo.Orders -SELECT * FROM dbo.OrdersHistory -向数据表中写入2003年的范例数据 USE Sales GO INSERT INTO dbo.Orders (OrderDate, CustomerID) VALUES (2003/6/25, 1000) INSERT INTO dbo.Orders (OrderDate, CustomerID) VALUES (2003/8/13, 1000) INSERT INTO dbo.Orders (OrderDate, CustomerID) VALUES (2003/8/25, 1000) INSERT INTO dbo.Orders (OrderDate, CustomerID) VALUES (2003/9/23, 1000) GO SELECT * FROM Orders SELECT * FROM dbo.OrdersHistory GO -2004年年初利用分区交换执行快速的数据归档 USE Sales GO ALTER TABLE dbo.Orders SWITCH PARTITION 2 TO dbo.OrdersHistory PARTITION 2 GO SELECT * FROM Orders SELECT * FROM dbo.OrdersHistory GO -对2002年数据分区和2003年数据分区进行合并 USE Sales GO ALTER PARTITION FUNCTION pf_OrderDate() MERGE RANGE (2003/01/01) GO -SELECT * FROM sys.partition_schemes -SELECT * FROM sys.partitions -使用分区分裂功能准备2005年的数据分区 USE Sales GO ALTER PARTITION SCHEME ps_OrderDate NEXT USED FG2 ALTER PARTITION FUNCTION pf_OrderDate() SPLIT RANGE (2005/01/01) GO -可使用以下代码检查各分区中的数据行数: SELECT $PARTITION.pf_OrderDate(OrderDate) AS Partition, COUNT(*) AS COUNT FROM dbo.Orders GROUP BY $PARTITION.pf_OrderDate(OrderDate) ORDER BY Partition ; GO SELECT $PARTITION.pf_OrderDate(OrderDate) AS Partition, COUNT(*) AS COUNT FROM dbo.OrdersHistory GROUP BY $PARTITION.pf_OrderDate(OrderDate) ORDER BY Partition ; GO - USE Sales GO INSERT INTO dbo.Orders (OrderDate, CustomerID) VALUES (2004/6/25, 1000) INSERT INTO dbo.Orders (OrderDate, CustomerID) VALUES (2004/8/13, 1000) INSERT INTO dbo.Orders (OrderDate, CustomerID) VALUES (2004/8/25, 1000) INSERT INTO dbo.Orders (OrderDate, CustomerID) VALUES (2004/9/23, 1000) GO INSERT INTO dbo.Orders (OrderDa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖北咸宁市通城城市发展建设投资(集团)有限公司第一期招聘模拟试卷及答案详解(名师系列)
- 2025辽宁鞍山市千山区公益性岗位招聘1人模拟试卷及参考答案详解
- 2025年甘肃省平凉市灵台县第二批城镇公益性岗位人员招聘114人模拟试卷及一套完整答案详解
- 2025年宁波市鄞州区面向社会公开招聘社区专职工作者55人模拟试卷附答案详解(考试直接用)
- 2025北京第四实验学校招聘45人模拟试卷及答案详解(历年真题)
- 2025南昌市自然资源和规划局高新分局招聘用地业务岗1人考前自测高频考点模拟试题及答案详解(易错题)
- 2025贵州省卫生健康委员会“银龄计划”(引进退休高级医疗卫生人才)724人模拟试卷及答案详解(夺冠系列)
- 2025年广东佛山市南海区桂城街道公开招聘辅警1人模拟试卷含答案详解
- 2025河南新乡市碳汇计量检测中心招聘模拟试卷及完整答案详解一套
- 2025年哈尔滨新区第二十四幼儿园招聘5人考前自测高频考点模拟试题含答案详解
- 跟着人民币旅游
- 世界语与英语的词汇对比分析论文
- 2025年度建筑公司分公司市场拓展合作合同
- 《林氏木业供应链管理现状、问题及优化建议》14000字(论文)
- 研发项目管理流程
- 八年级英语组工作总结
- 《船用格栅》规范
- 重大(2023)版信息科技五年级上册教学设计
- 《出师表》原文及英文对照版-20210722094410
- 实验室装修工程设计书
- 2024-2025学年人教版八年级英语上册Unit 2 测试卷
评论
0/150
提交评论