200分,2个帖子一起结.高手进来帮我仔细解决一下,万分感谢谢谢

lihongdian 2008-10-27 03:28:11
另一个帖子地址http://topic.csdn.net/u/20081027/11/7facb589-a2b0-484a-bfda-6cd57f39521c.html
回答出来了我一起给分.

我现在想解决的问题是大数据量的问题.打个比方.有一个表有列(ID,phone,Date)
意思是每个人根据时间不同可以改变自己的电话号码.比如:
ID Phone Date
001 13187261321 2008-1-1:00:00:00
001 13656263355 2008-3-1:00:00:00
002 13598362182 2008-3-3:00:00:00
中间两个001表示,001这个人在3月1号改变了自己的手机号.
我现在想用一个表记录这些东西,但是实际需求是一个人大概要变1000多次号码(打比方)
现在有2000多人,也就是说如果用一个表记录会需要200万行.这只是几年内,如果10年也许需要1000万行.
这么大一个表,我想用一个人一个表的方法记录,但是上面那个帖子的人说不如建一个表.
但是分区表的建立方法让我看得头痛.而且好象只能按时间分区.这样分区好象又涉及到跨区查询.
有没有高手能告诉我解决办法?或者有简单的分区表建立示例?因为查询只会按人头来查询,我想的是建立ID的非唯一聚集索引.
请问有什么完美的解决办法吗?万分感激.200分送上.
...全文
129 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
conquest12 2008-10-28
  • 打赏
  • 举报
回复
我是SQL server的初学者,虽然能看懂以点点,但是无法给你提供实际性的帮助。
fffff_1982 2008-10-27
  • 打赏
  • 举报
回复
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UserA]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[UserA]
GO

CREATE TABLE [dbo].[UserA] (
[ID] [varchar] (50) COLLATE Japanese_CI_AS NULL ,
[name] [char] (10) COLLATE Japanese_CI_AS NULL
) ON [PRIMARY]
GO
insert into UserA values ('001','test')
insert into UserA values ('002','test')
declare @userID varchar(5)
set @userID='002'

declare @ID varchar(3)
set @ID =(select ID from UserA where ID=@userID)
declare @TableName varchar(10)
set @TableName='user_'+ @ID
print @TableName
declare @drop varchar(50)
set @drop =''
set @drop=@drop +'drop table [dbo].['+@TableName+']'
print @drop

if exists (select * from dbo.sysobjects where name=@TableName)
begin
exec(@drop)
end
else
declare @strQuery varchar(200)
set @strQuery=''
set @strQuery=@strQuery+'CREATE TABLE dbo.['+@TableName+' ]('
set @strQuery=@strQuery+' [column] [char] (10) NULL ,'
set @strQuery=@strQuery+' [row] [char] (10) NULL'
set @strQuery=@strQuery+')'

print @strQuery
exec (@strQuery)

select * from user_002
zhouxu_hust 2008-10-27
  • 打赏
  • 举报
回复
MARK~
lihongdian 2008-10-27
  • 打赏
  • 举报
回复
我已经自己解决了.谢谢大家,散分!
等不到来世 2008-10-27
  • 打赏
  • 举报
回复
一个表存当前最新记录,另一个表存修改记录。

ps:2000w也不算很多,而且10年之后你在哪都不知道,何必担心那么多……
Dragon_pan 2008-10-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 fcuandy 的回复:]
分区表也不是什么难事,自己建个测试表,照教程来做就是了,有问题测不过去就发上来,大家帮你看看,这样对你对大家的提高都有帮助。

因为怕难就找些蹩脚的做法,开始可能自己容易点,到最后苦的还是自己 。
[/Quote]
只有引用的内容不允许回复!!
ChinaJiaBing 2008-10-27
  • 打赏
  • 举报
回复

以时间来区别....
qizhengsheng 2008-10-27
  • 打赏
  • 举报
回复
不懂,帮顶
fcuandy 2008-10-27
  • 打赏
  • 举报
回复
分区表也不是什么难事,自己建个测试表,照教程来做就是了,有问题测不过去就发上来,大家帮你看看,这样对你对大家的提高都有帮助。

因为怕难就找些蹩脚的做法,开始可能自己容易点,到最后苦的还是自己 。
simen_frankly 2008-10-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dobear_0922 的回复:]
引用楼主 lihongdian 的帖子:
另一个帖子地址http://topic.csdn.net/u/20081027/11/7facb589-a2b0-484a-bfda-6cd57f39521c.html
回答出来了我一起给分.

我现在想解决的问题是大数据量的问题.打个比方.有一个表有列(ID,phone,Date)
意思是每个人根据时间不同可以改变自己的电话号码.比如:
ID Phone Date
001 13187261321 2008-1-1:00:00:00
001 13656263355 2008-3-1:00:00:00
002 135…
[/Quote]
up
fffff_1982 2008-10-27
  • 打赏
  • 举报
回复
每个人建一个表不就行了,有一个主表记录人的信息。这样我估计会速度很快
zdgood 2008-10-27
  • 打赏
  • 举报
回复
建一个表就可以,200万条也不错多的,查询时加上条件,应该也不会很慢的!
lihongdian 2008-10-27
  • 打赏
  • 举报
回复
怎么按ID分区?我又不能写IF(ID1!=ID2){ID1分一区,ID2分二区}
-狙击手- 2008-10-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dobear_0922 的回复:]
你也可以按照ID来分区,,,
[/Quote]


UP
dobear_0922 2008-10-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 lihongdian 的帖子:]
另一个帖子地址http://topic.csdn.net/u/20081027/11/7facb589-a2b0-484a-bfda-6cd57f39521c.html
回答出来了我一起给分.

我现在想解决的问题是大数据量的问题.打个比方.有一个表有列(ID,phone,Date)
意思是每个人根据时间不同可以改变自己的电话号码.比如:
ID Phone Date
001 13187261321 2008-1-1:00:00:00
001 13656263355 2008-3-1:00:00:00
002 13598362182 2008-3-3:00:00:00
中间两个001表示,001这个人在3月1号改变了自己的手机号.
我现在想用一个表记录这些东西,但是实际需求是一个人大概要变1000多次号码(打比方)
现在有2000多人,也就是说如果用一个表记录会需要200万行.这只是几年内,如果10年也许需要1000万行.
这么大一个表,我想用一个人一个表的方法记录,但是上面那个帖子的人说不如建一个表.
但是分区表的建立方法让我看得头痛.而且好象只能按时间分区.这样分区好象又涉及到跨区查询. 有没有高手能告诉我解决办法?或者有简单的分区表建立示例?因为查询只会按人头来查询,我想的是建立ID的非唯一聚集索引.
请问有什么完美的解决办法吗?万分感激.200分送上.
[/Quote]

你也可以按照ID来分区,,,
水族杰纶 2008-10-27
  • 打赏
  • 举报
回复
先頂~~
pt1314917 2008-10-27
  • 打赏
  • 举报
回复
没看懂什么意思。帮顶一下。。

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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