想问一下各位在SQLSERVER上操纵过的单表最大记录数是多少?

kindtoadsd 2011-04-11 03:17:44
想看看SQLSERVER的性能。我这里过百万就太慢了。
...全文
804 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
guguda2008 2011-04-11
  • 打赏
  • 举报
回复
我操作的最多也就是上千万的表,有索引的话还好吧,没索引的没法查。
--小F-- 2011-04-11
  • 打赏
  • 举报
回复
2005以上可以用分区表 

2000的分区视图
分区视图
分区视图是提高查询性能的一个很好的办法


--看下面的示例

--示例表
create table tempdb.dbo.t_10(
id int primary key check(id between 1 and 10),name varchar(10))

create table pubs.dbo.t_20(
id int primary key check(id between 11 and 20),name varchar(10))

create table northwind.dbo.t_30(
id int primary key check(id between 21 and 30),name varchar(10))
go

--分区视图
create view v_t
as
select * from tempdb.dbo.t_10
union all
select * from pubs.dbo.t_20
union all
select * from northwind.dbo.t_30
go

--插入数据
insert v_t select 1 ,'aa'
union all select 2 ,'bb'
union all select 11,'cc'
union all select 12,'dd'
union all select 21,'ee'
union all select 22,'ff'

--更新数据
update v_t set name=name+'_更新' where right(id,1)=1

--删除测试
delete from v_t where right(id,1)=2

--显示结果
select * from v_t
go

--删除测试
drop table northwind.dbo.t_30,pubs.dbo.t_20,tempdb.dbo.t_10
drop view v_t

/**//*--测试结果

id name
----------- ----------
1 aa_更新
11 cc_更新
21 ee_更新

(所影响的行数为 3 行)
==*/


八、 树型的实现


--参考

--树形数据查询示例
--作者: 邹建

--示例数据
create table [tb]([id] int identity(1,1),[pid] int,name varchar(20))
insert [tb] select 0,'中国'
union all select 0,'美国'
union all select 0,'加拿大'
union all select 1,'北京'
union all select 1,'上海'
union all select 1,'江苏'
union all select 6,'苏州'
union all select 7,'常熟'
union all select 6,'南京'
union all select 6,'无锡'
union all select 2,'纽约'
union all select 2,'旧金山'
go

--查询指定id的所有子
create function f_cid(
@id int
)returns @re table([id] int,[level] int)
as
begin
declare @l int
set @l=0
insert @re select @id,@l
while @@rowcount>0
begin
set @l=@l+1
insert @re select a.[id],@l
from [tb] a,@re b
where a.[pid]=b.[id] and b.[level]=@l-1
end
/**//**//**//*--如果只显示最明细的子(下面没有子),则加上这个删除
delete a from @re a
where exists(
select 1 from [tb] where [pid]=a.[id])
--*/
return
end
go

--调用(查询所有的子)
select a.*,层次=b.[level] from [tb] a,f_cid(2)b where a.[id]=b.[id]
go

--删除测试
drop table [tb]
drop function f_cid
go
kindtoadsd 2011-04-11
  • 打赏
  • 举报
回复
我们的用友生产里进行成本计算时太慢了。我看了一下,有个表大约有百万条记录。
haitao 2011-04-11
  • 打赏
  • 举报
回复
帮助里有啊
kindtoadsd 2011-04-11
  • 打赏
  • 举报
回复
能具体说说怎么分区吗?给点资料也行。
haitao 2011-04-11
  • 打赏
  • 举报
回复
现在有一个表 快5千万条了,分了100个区,基本没感觉慢
昵称被占用了 2011-04-11
  • 打赏
  • 举报
回复
一次不要返回太多数据
保证查询使用索引
减少数据修改和删除

这样,2亿多没有问题,更多的单表没遇到过,估计会超过1亿的都提前拆分了
叶子 2011-04-11
  • 打赏
  • 举报
回复
单表最大行数取决于硬盘空间...

过百万就太慢了,说明索引没有建好...

34,587

社区成员

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

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