日期:2014-05-16  浏览次数:20614 次

新人请教ACCESS和SQLServer的问题,谢谢
某个一模一样的web程序,让20家客户使用。服务器就1台。假设每家客户一年产生3.65万条数据。

问题一:
ACCESS方案:建20个ACCESS文件,放在20个不同的虚拟目录,让这20个不同的客户自己用自己的。
SQLServer方案:把这20家客户的数据集中到一个库管理。
请问从效率方面、管理灵活度上谁更优?我觉得整20个ACCESS文件更灵活一些,但不知道1台服务器够不够用。


问题二:
假设这个web程序一共需要200个字段,
方案1:建2个table,每个table 100个字段
方案2:建20个table,每个table 10个字段
请问方案1和方案2谁运行效率高?简单说下理由

新人求指教,谢谢啊各位前辈!!!分不多,一共60分,请谅
------解决方案--------------------
本帖最后由 DBA_Huangzj 于 2014-03-05 08:40:25 编辑
问题一:
ACCESS方案:建20个ACCESS文件,放在20个不同的虚拟目录,让这20个不同的客户自己用自己的。
SQLServer方案:把这20家客户的数据集中到一个库管理。
请问从效率方面、管理灵活度上谁更优?我觉得整20个ACCESS文件更灵活一些,但不知道1台服务器够不够用。
个人见解:选择sqlserver,特别是你的库要使用比较长的时间,按照你的计算20个客户一年共70万行数据,另外还有一些连带的功能需要存储,sqlserver毕竟是更加纯粹的数据库管理系统,在多个用户有交叉的那些操作中,同一个库能更好地利用统计信息,提高性能,并且能减少迁移、新功能发布时带来的工作量和不可预估的风险。access的话最好使用最新版本。

问题二:
假设这个web程序一共需要200个字段,
方案1:建2个table,每个table 100个字段
方案2:建20个table,每个table 10个字段
请问方案1和方案2谁运行效率高?简单说下理由
个人见解:一个表100个字段没问题,不过要看内部逻辑,如果这100个字段都是密切联系,拆开的话不好,而且多表关联会影响优化器产生执行计划的效率和准确性。建议把属于“一个整体”的列存在同一个表。
------解决方案--------------------
1.SQL SERVER的备份机制比ACCESS好很多。安全性也强大很多。大数据量的查询效率也高很多。如果有可能,还是建议使用SQL SERVER比较好。

2.根据需求说话,没有绝对的好坏。
------解决方案--------------------
问题1:商用肯定选SQL SERVER,SQL SERVER无论在并发还是调优上面都远远超过Access,而且现在可能就20个用户,每个用户每年的数据量就几万,相信未来肯定会发生指数级的变化,所以还不如一开始就为未来做好准备

问题2:web程序一共需要200个字段,那么根据实际的业务能否划分成不同的表,划分表不是看表能容纳的最多字段数决定的,还是根据实体决定的,建议看看数据库方面的书有关实体(Entity)的介绍