关于分区视图

wenzm 2003-09-15 10:53:57

Q:

No1:分区视图的性能主要是针对分布式数据库的,如果我的分区视图中的基表都是位于同一服务器上,性能上有提高吗?包括查询与更新;

No2:分区视图有很多规则限制——特别是可更新的分区视图——分区列(我的理解是用来保证插入更新的时候数据知道写入到哪个基本表中,当然是需要建立保证不重复值的列)是否非得建立主键? 假如一定需要是主键,那么是否允许分区列是多列合成!?

Thank U!
...全文
46 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
leimin 2003-09-15
  • 打赏
  • 举报
回复
No1:分区视图的性能主要是针对分布式数据库的,如果我的分区视图中的基表都是位于同一服务器上,性能上有提高吗?包括查询与更新;
在查询的性能上有提高,但更新会有降低。

No2:分区视图有很多规则限制——特别是可更新的分区视图——分区列(我的理解是用来保证插入更新的时候数据知道写入到哪个基本表中,当然是需要建立保证不重复值的列)是否非得建立主键? 假如一定需要是主键,那么是否允许分区列是多列合成!?
不一定要建立主键。分区列可以是多列合成!
wenzm 2003-09-15
  • 打赏
  • 举报
回复
No3:
========================================创建表===================================
CREATE TABLE [dbo].[Customer_1] (
[CustomerID] [int] NOT NULL ,
[CusName] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Customer_2] (
[CustomerID] [int] NOT NULL ,
[CusName] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Customer_3] (
[CustomerID] [int] NOT NULL ,
[CusName] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
========================================创建约束=================================

ALTER TABLE [dbo].[Customer_1] WITH NOCHECK ADD
CONSTRAINT [PK_Customer_1] PRIMARY KEY CLUSTERED
(
[CustomerID]
) ON [PRIMARY] ,
CONSTRAINT [CK__Customer___Custo__35BCFE0A] CHECK ([CustomerID] >= 1 and [CustomerID] <= 1000)
GO

ALTER TABLE [dbo].[Customer_2] WITH NOCHECK ADD
CONSTRAINT [PK_Customer_2] PRIMARY KEY CLUSTERED
(
[CustomerID]
) ON [PRIMARY] ,
CONSTRAINT [CK__Customer___Custo__37A5467C] CHECK ([CustomerID] >= 1001 and [CustomerID] <= 2000)
GO

ALTER TABLE [dbo].[Customer_3] WITH NOCHECK ADD
CONSTRAINT [PK_Customer_3] PRIMARY KEY CLUSTERED
(
[CustomerID]
) ON [PRIMARY] ,
CONSTRAINT [CK__Customer___Custo__398D8EEE] CHECK ([CustomerID] >= 2002 and [CustomerID] <= 5000)
GO

========================================创建视图=================================
SELECT *
FROM Customer_1
UNION ALL
SELECT *
FROM Customer_2
UNION ALL
SELECT *
FROM Customer_3


以上完成分区视图的创建
为什么执行
insert into Customer values(1,'abc')出错:UNION ALL 视图 'Customer' 不可更新,因为没有找到分区列。
wenzm 2003-09-15
  • 打赏
  • 举报
回复
好象是一定要建立主键!
SampleStory 2003-09-15
  • 打赏
  • 举报
回复
一定要建立主键!

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧