数据表长的太大怎么办?(100分)

  • 主题发起人 主题发起人 mmm188
  • 开始时间 开始时间
M

mmm188

Unregistered / Unconfirmed
GUEST, unregistred user!
SQL65中的数据表在使用一段时间后变的其大无比,
如表中有150万条记录,每条记录3K,用sp_spaceused竟然占2.3G空间!
请问:
1、如何防止这种异常增大?
2、怎样把该表整理回正常状态,即占空间为500M左右。

 
问题时你的这些数据是不是有用的数据,
 
在帮助中查一下“shrink”
 
To zengr,
有用的数据,而且正在使用中!
 
To yangkee,
我不是想改变数据库的大小!而是想知道数据表异常变大怎么处理及怎么预防异常变大。
 
1.是否您的数据不断增多(正常输入和异常读写)
2。查tempdb的大小(有没有数据库的非正常活动)
3。请写出
reserved data index_size unused
大小
4。
 
rows reserved data index_size unused
------- ---------- ----------- ------------ ---------
1710133 2167592 KB 1984164 KB 166058 KB 17370 KB

数据的确在不断增加和更新!

TEMPDB的大小为125M,下面是TEMPDB的情况:
database_name database_size unallocated space
------------------------------ ------------------ ------------------
tempdb 62.00 MB 61.34 MB

reserved data index_size unused
------------------ ------------------ ------------------ ------------------
672 KB 66 KB 42 KB 564 KB
 
如果数据正常性的增多,硬盘空间的增长是不可避免的。
如果数据增长异常,就要考虑是否有cross join 误操作的可能性。

 
To sportsman,
但问题是增加的太快了!
有多个工作站对该表进行增加或修改操作!
但都是最简单的insert和update,且该表没有建任何其他关联。
 
还请告知该表结构。(字段数和字段类型)
还有增长的速度。
空间从?--〉?
记录数从?--〉?
 
结构:
字段 数据类型 默认值
========================================
Code smallint default (0),
BillNo int default (0),
SortNo tinyint default (1),
InDate datetime null,
Message varchar(50) null,
Content text null,
Operator1 char(4) null,
Replyflag tinyint default (0),
BillType tinyint default (0),
Operator2 char(4) null,
ReplyDate datetime null,
ReplyNo smallint default (1),
AreaNo smallint default (0)
==============================================
数据存放方法:
为每个BillNo分配50条空记录

数据增加的方法:
根据BillNo进行判断,新的则增加50条

数据更新的方法:
根据BillNo在50条内进行循环更新

数据增加较慢,但更新比较频繁!
 
有几点我觉得要注意:
1。如果很在意硬盘空间的话,把填充因子设为最大。
2。test型空间不定,要看你存了多少东东。
3。不知循环更新的算法是否合适。
4。sql server就是这样的,升级到2000应该能解决一点困难。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
850
SUNSTONE的Delphi笔记
S
S
回复
0
查看
782
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部