SQL数据库超过4G就插不入了,也是PRIMARY 文件组分配空间的问题

wind_flaw 2003-11-28 11:16:57
项目:
一个实时采集波形监控系统,
一个COM每秒钟读取两条记录,
一台机接现十几个COM,
一次作业(对一个COM一次只能负责一个作业)大概是两天

要求:
客户又要求能象股票一样的可以放大缩小来看波形图

现采用措施:
计算下来两天每个COM会有34.5万条记录,由于数据量巨大,所以我将每次作业单独生成四张表(秒、分、时、天)

数据库:
一张主档(存放每个作业的头信息)
每个作业生成四张明细表(流水账)

环境:
BCB6 + window2K server + SQLServer2000 + ADOQuery

现状:
由于在调试阶段,运行十几天后数据库里的表已多达4000多张,数据文件达到4G

问题:
1\现在我的数据库里任何一个表的记录插入都会报错(直接在管理器里)
2\主档的自动流水号一下子从1700多升到15万(我想应该也是每一个问题引起的)

所做过的措施
原先数据库的大小设置为"无限",下面的默认最大值为4G多(强调我是设为无限的),于是我改为"有最大值模式",并将其设成20G,但无效
将原先的增长方式从"按5%"改成"每次增长50M",且要将20G改成5G,可以插入数据了
但第二天客户反应于又不行了
...全文
242 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Chiff 2004-03-09
  • 打赏
  • 举报
回复
改为ntfs格式即可。
1ssp 2003-12-31
  • 打赏
  • 举报
回复
sql server 数据库文件包括三类:
主文件
辅助文件
日志文件
建立一个主文件,在建立几个辅助文件,和一个日志文件。
把数据库数据存放到多个文件中(注,可以在不同的磁盘上)管理方便,读取速度快。
按照文件组备份。大型的数据库应该是这样管理。
此外,定期截断日志。
wind_flaw 2003-12-31
  • 打赏
  • 举报
回复
如果是fat32是话,最大的寻址范围是4G,一个文件没法超过4G,所以你将磁盘改成NTFS就行了
teaism 2003-11-29
  • 打赏
  • 举报
回复
最终解决方法还是换成企业版好些。
hdslah 2003-11-29
  • 打赏
  • 举报
回复
可多分几個文件組
guid6 2003-11-29
  • 打赏
  • 举报
回复
SQL的DATE.mdf文件可以分为几个文件存放
chenhaha 2003-11-29
  • 打赏
  • 举报
回复
如果你的硬盘是fat的话,单个文件不能超过4G的
NTFS可以
youngby 2003-11-29
  • 打赏
  • 举报
回复
mark
lansquenet 2003-11-28
  • 打赏
  • 举报
回复
限制日志文件的增长容量
表实在增多的太快了,再取个规则
让库也增多一下,分级看看
haoranqifan 2003-11-28
  • 打赏
  • 举报
回复
up
txlicenhe 2003-11-28
  • 打赏
  • 举报
回复
计算下来两天每个COM会有34.5万条记录,由于数据量巨大,所以我将每次作业单独生成四张表(秒、分、时、天)

不用吧? 查询时来按条件分开就行了
txlicenhe 2003-11-28
  • 打赏
  • 举报
回复
1: 删除LOG
1:分离数据库 企业管理器->服务器->数据库->右键->分离数据库
2:删除LOG文件
3:附加数据库 企业管理器->服务器->数据库->右键->附加数据库
此法生成新的LOG,大小只有500多K
再将此数据库设置自动收缩
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。

EXEC sp_detach_db @dbname = 'pubs'
EXEC sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'


2:清空日志
DUMP TRANSACTION 库名 WITH NO_LOG

再:
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了

3: 如果想以后不让它增长
企业管理器->服务器->数据库->属性->事务日志->将文件增长限制为2M
leimin 2003-11-28
  • 打赏
  • 举报
回复
也许你应该将你的MSSQLSERVER2000的版本用企业版(至少要用标准版)
zjcxc 元老 2003-11-28
  • 打赏
  • 举报
回复
楼上的已经很清楚了.

34,873

社区成员

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

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