一张表1.19亿笔数据,是不是要崩了的节奏?

jedjoy2007 2014-03-06 01:24:09
select COUNT(*) from  ICStockBill
select COUNT(*) from ICStockBillEntry
select COUNT(*) from t_ICItem
select COUNT(*) from t_item

K3出入库主表数据540万,明细表1.19亿,物料视图9.5万,物料源表17万,表不能删,不能减。

跑了三年多了,数据量每个月都在蹭蹭往上涨,帐套大小120G目指。

这样下去是不是要崩了的节奏?还有救吗?

现在K3成本核算、凭证维护、职员维护要瘫痪了。
...全文
660 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
software_artisan 2014-03-08
  • 打赏
  • 举报
回复
K3的数据结构设计烂到扑,很多信息根本就不是结构化的。上次有家公司找人做BI,结果愣是被数据结构给难住了。呵呵
Q315054403 2014-03-07
  • 打赏
  • 举报
回复
若方便申请预算,乐意提供支持、优化、咨询。。120G的数据库在这几天不算大数据了,十多年前算是 略看了KD、UF结构与DB代码,设计注重功能完成,至于效率,无非是一味地让客户买高端机器(这样也好,大伙儿都有钱赚) 未看SAP的DB代码,不便评论。不过也都是买高级硬件
bdbody 2014-03-07
  • 打赏
  • 举报
回复
一直想研究研究k3的数据结构 谁有数据字典吗
haitao 2014-03-07
  • 打赏
  • 举报
回复
引用 7 楼 ap0405140 的回复:
可以考虑用分区表,对前端程序没有影响.
的确,分区表很好 我的一个应用,最大的表已经8.5亿,分100个区表 打算5-10年内到20亿再改造
xiaoxiangqing 2014-03-07
  • 打赏
  • 举报
回复
硬件要跟上才行,这么大的数据量,要从多方面调整
Mr_Nice 2014-03-07
  • 打赏
  • 举报
回复
说句实在话,个人认为K3写的很烂(数据库处理这部分),随便起账套,随便复制N次。 再大的硬盘也是要崩的节奏。
aileice 2014-03-06
  • 打赏
  • 举报
回复
这真是拼钱拼脑拼实力,各种拼啊...
line_us 2014-03-06
  • 打赏
  • 举报
回复
大数据的维护真是个技术活。
jedjoy2007 2014-03-06
  • 打赏
  • 举报
回复
引用 23 楼 DBA_Huangzj 的回复:
[quote=引用 21 楼 jedjoy2007 的回复:] [quote=引用 20 楼 DBA_Huangzj 的回复:] [quote=引用 19 楼 wqrz 的回复:] [quote=引用 17 楼 ap0405140 的回复:] [quote=引用 14 楼 jedjoy2007 的回复:] 数据库文件放存储上,也可以使用分区表方法吗?
是的,可以设多个数据库文件组,把分区表的各分区放在不同的文件组里,有利于分担IO.[/quote] 如果磁盘只有1个IO通道 这个有效果? 如果文件放到不同的磁盘里 这个IO能力提高有多少呢?[/quote]除非做测试,不然没有准确数据,这里说的分担IO是只多个物理磁盘下,可以把不同的分区文件组放到不同的磁盘,这样可以并行读取多个磁盘,而不用把所有I/O请求集中在一个物理磁盘上[/quote] 想来想去,我觉得性能问题可能出在[存储]上了。 这个存储由十几块6Gb SAS 15k 600G硬盘组成,分了多个LUNs,几家公用,三路6Gbps光纤连接,挂了不少虚拟机。 数据库服务器也是虚拟机,早知道有性能瓶颈,数据库就干脆装实体机上了。[/quote]早知道就不要放那么多公用的[/quote] 有这想法了,虚拟机转成实体机,省得被人吃了资源还被蒙在鼓里,虚拟机分配的资源毕竟是假的。
jedjoy2007 2014-03-06
  • 打赏
  • 举报
回复
引用 22 楼 yupeigu 的回复:
[quote=引用 21 楼 jedjoy2007 的回复:] [quote=引用 20 楼 DBA_Huangzj 的回复:] [quote=引用 19 楼 wqrz 的回复:] [quote=引用 17 楼 ap0405140 的回复:] [quote=引用 14 楼 jedjoy2007 的回复:] 数据库文件放存储上,也可以使用分区表方法吗?
是的,可以设多个数据库文件组,把分区表的各分区放在不同的文件组里,有利于分担IO.[/quote] 如果磁盘只有1个IO通道 这个有效果? 如果文件放到不同的磁盘里 这个IO能力提高有多少呢?[/quote]除非做测试,不然没有准确数据,这里说的分担IO是只多个物理磁盘下,可以把不同的分区文件组放到不同的磁盘,这样可以并行读取多个磁盘,而不用把所有I/O请求集中在一个物理磁盘上[/quote] 想来想去,我觉得性能问题可能出在[存储]上了。 这个存储由十几块6Gb SAS 15k 600G硬盘组成,分了多个LUNs,几家公用,三路6Gbps光纤连接,挂了不少虚拟机。 数据库服务器也是虚拟机,早知道有性能瓶颈,数据库就干脆装实体机上了。[/quote] 那就赶紧买一台好一点的服务器吧,肯定比金蝶的要价要低对了。 我原来公司的,就dell的普通服务器,大表现在估计得有超过2亿条,也没奔溃过。所以买个好一点的服务器,多点内存,性能就上去了。 如果再建点索引,那速度肯定更快,如果再用分区表,把数据进行归档,那就更好了。[/quote] 有这个打算了。
發糞塗牆 2014-03-06
  • 打赏
  • 举报
回复
引用 21 楼 jedjoy2007 的回复:
[quote=引用 20 楼 DBA_Huangzj 的回复:] [quote=引用 19 楼 wqrz 的回复:] [quote=引用 17 楼 ap0405140 的回复:] [quote=引用 14 楼 jedjoy2007 的回复:] 数据库文件放存储上,也可以使用分区表方法吗?
是的,可以设多个数据库文件组,把分区表的各分区放在不同的文件组里,有利于分担IO.[/quote] 如果磁盘只有1个IO通道 这个有效果? 如果文件放到不同的磁盘里 这个IO能力提高有多少呢?[/quote]除非做测试,不然没有准确数据,这里说的分担IO是只多个物理磁盘下,可以把不同的分区文件组放到不同的磁盘,这样可以并行读取多个磁盘,而不用把所有I/O请求集中在一个物理磁盘上[/quote] 想来想去,我觉得性能问题可能出在[存储]上了。 这个存储由十几块6Gb SAS 15k 600G硬盘组成,分了多个LUNs,几家公用,三路6Gbps光纤连接,挂了不少虚拟机。 数据库服务器也是虚拟机,早知道有性能瓶颈,数据库就干脆装实体机上了。[/quote]早知道就不要放那么多公用的
  • 打赏
  • 举报
回复
引用 21 楼 jedjoy2007 的回复:
[quote=引用 20 楼 DBA_Huangzj 的回复:] [quote=引用 19 楼 wqrz 的回复:] [quote=引用 17 楼 ap0405140 的回复:] [quote=引用 14 楼 jedjoy2007 的回复:] 数据库文件放存储上,也可以使用分区表方法吗?
是的,可以设多个数据库文件组,把分区表的各分区放在不同的文件组里,有利于分担IO.[/quote] 如果磁盘只有1个IO通道 这个有效果? 如果文件放到不同的磁盘里 这个IO能力提高有多少呢?[/quote]除非做测试,不然没有准确数据,这里说的分担IO是只多个物理磁盘下,可以把不同的分区文件组放到不同的磁盘,这样可以并行读取多个磁盘,而不用把所有I/O请求集中在一个物理磁盘上[/quote] 想来想去,我觉得性能问题可能出在[存储]上了。 这个存储由十几块6Gb SAS 15k 600G硬盘组成,分了多个LUNs,几家公用,三路6Gbps光纤连接,挂了不少虚拟机。 数据库服务器也是虚拟机,早知道有性能瓶颈,数据库就干脆装实体机上了。[/quote] 那就赶紧买一台好一点的服务器吧,肯定比金蝶的要价要低对了。 我原来公司的,就dell的普通服务器,大表现在估计得有超过2亿条,也没奔溃过。所以买个好一点的服务器,多点内存,性能就上去了。 如果再建点索引,那速度肯定更快,如果再用分区表,把数据进行归档,那就更好了。
jedjoy2007 2014-03-06
  • 打赏
  • 举报
回复
引用 20 楼 DBA_Huangzj 的回复:
[quote=引用 19 楼 wqrz 的回复:] [quote=引用 17 楼 ap0405140 的回复:] [quote=引用 14 楼 jedjoy2007 的回复:] 数据库文件放存储上,也可以使用分区表方法吗?
是的,可以设多个数据库文件组,把分区表的各分区放在不同的文件组里,有利于分担IO.[/quote] 如果磁盘只有1个IO通道 这个有效果? 如果文件放到不同的磁盘里 这个IO能力提高有多少呢?[/quote]除非做测试,不然没有准确数据,这里说的分担IO是只多个物理磁盘下,可以把不同的分区文件组放到不同的磁盘,这样可以并行读取多个磁盘,而不用把所有I/O请求集中在一个物理磁盘上[/quote] 想来想去,我觉得性能问题可能出在[存储]上了。 这个存储由十几块6Gb SAS 15k 600G硬盘组成,分了多个LUNs,几家公用,三路6Gbps光纤连接,挂了不少虚拟机。 数据库服务器也是虚拟机,早知道有性能瓶颈,数据库就干脆装实体机上了。
發糞塗牆 2014-03-06
  • 打赏
  • 举报
回复
引用 19 楼 wqrz 的回复:
[quote=引用 17 楼 ap0405140 的回复:] [quote=引用 14 楼 jedjoy2007 的回复:] 数据库文件放存储上,也可以使用分区表方法吗?
是的,可以设多个数据库文件组,把分区表的各分区放在不同的文件组里,有利于分担IO.[/quote] 如果磁盘只有1个IO通道 这个有效果? 如果文件放到不同的磁盘里 这个IO能力提高有多少呢?[/quote]除非做测试,不然没有准确数据,这里说的分担IO是只多个物理磁盘下,可以把不同的分区文件组放到不同的磁盘,这样可以并行读取多个磁盘,而不用把所有I/O请求集中在一个物理磁盘上
wqrz 2014-03-06
  • 打赏
  • 举报
回复
引用 17 楼 ap0405140 的回复:
[quote=引用 14 楼 jedjoy2007 的回复:] 数据库文件放存储上,也可以使用分区表方法吗?
是的,可以设多个数据库文件组,把分区表的各分区放在不同的文件组里,有利于分担IO.[/quote] 如果磁盘只有1个IO通道 这个有效果? 如果文件放到不同的磁盘里 这个IO能力提高有多少呢?
wqrz 2014-03-06
  • 打赏
  • 举报
回复
我认为 你首先要把ICStockBill  ICStockBillEntry 这2个表的SQL语句 最耗时的TOP 10找出来, 然后再看看这些SQL语句有没有问题 (你已经改不了语句了 除非是存储过程里) 看看能不能动索引(我估计可能性很小) 比较靠谱的办法是提高硬件性能 存储换成PCI-E接口的SSD 怕丢数据组个RAID 加大内存 最后的方案是换软件
唐诗三百首 2014-03-06
  • 打赏
  • 举报
回复
引用 14 楼 jedjoy2007 的回复:
数据库文件放存储上,也可以使用分区表方法吗?
是的,可以设多个数据库文件组,把分区表的各分区放在不同的文件组里,有利于分担IO.
發糞塗牆 2014-03-06
  • 打赏
  • 举报
回复
但是从2005开始才支持
發糞塗牆 2014-03-06
  • 打赏
  • 举报
回复
引用 14 楼 jedjoy2007 的回复:
[quote=引用 7 楼 ap0405140 的回复:] 可以考虑用分区表,对前端程序没有影响.
数据库文件放存储上,也可以使用分区表方法吗?[/quote]分区表是一种较为透明的功能,基本上不需要在物理上做什么改动
jedjoy2007 2014-03-06
  • 打赏
  • 举报
回复
引用 7 楼 ap0405140 的回复:
可以考虑用分区表,对前端程序没有影响.
数据库文件放存储上,也可以使用分区表方法吗?
加载更多回复(13)

22,209

社区成员

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

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