单数据库vs多数据库,单实例vs多实例 效率测试 (单数据库 大量读写)

技术教程 2025-05-14 10:17:51 浏览
效率测试

最近公司的项目准备优化一下系统的性能,希望在数据库方面看有没有提升的空间,目前压力测试发现数据库 单vs多 服务器 压力还不够大,Web服务器压力也不是很大的情况下,前台页面访问却很慢,看有没有办法充分利用数据库服务器的性能,于是做了一个单数据库,多数据库,单实例,多实例不同情况下的数据访问效率测试。

67万真实的基金收益数据,将这个表的数据放到了3个数据库中,详细内容见下面的连接字符串配置:

测试内容:

直接执行这个T-SQL脚本,在数据库表没有索引的情况下,耗费的时间是:

根据这个功能,写了一个.Net控制台程序来测试,测试程序没有使用任何数据访问框架,直接使用ADO.NET,下面是多线程测试的代码,其它代码略:

下面是测试结果:

第一次,数据库没有创建索引,进行全表扫描:

第二次,数据库响应的字段创建索引,下面是测试结果:

综合全表扫描访问和有索引方式的访问,

单实例vs多实例

单线程访问:

多线程访问:

综合结论,看来不论是双数据库还是双实例,对比与单实例或者单数据库,都没有体现出优势,看来前者的优势不在于访问效率,一位朋友说,数据库实例是不同的服务,控制粒度更小,维护影响比较低。但我想,双数据库实例,双数据库,多核CPU,应该跟两台数据库服务器差不多的性能吧,怎么没有体现优势呢?也许是我的测试机器仅仅有一个磁盘,这里磁盘IO成了瓶颈。

这个测试有没有意义,或者这个结果的原因,还请大牛们多多指教!

1,有人说频繁的查询在完全数据库中进行效率最高,测试发现,在查询分析器上直接运行上面的那个T-SQL脚本,跟程序从数据库取出数据,再加工计算查询,效率上没有明显的区别,所以哪些支持 “将复杂的业务逻辑写在存储过程中效率最高的观点是站不住脚的!” ,ADO.NET从数据库来回操作数据一样有效率,如果加上复杂的字符函数计算和大批量的循环操作,存储过程的效率不一定高。

2,在使用程序进行频繁的数据库操作的时候,使用一个连接对象还是在每个方法中使用新的连接对象,一直是很纠结的问题,心想频繁的数据操作还是用一个连接对象快吧?在本文给出的测试代码中,有下列语句:

注释掉这些语句,在被调用的 方法中使用自己的连接对象 ,与取消注释, 全部使用一个连接对象,效率上没有任何区别!

究其原因,可能是ADO.NET自动使用了连接池,实际上程序在不同的情况下,使用的都是一个连接,所以操作上效率没有区别。

在真正的服务器上进行测试,发现测试结论又不一样,我们有服务器A,拥有16个核,32G内存,另外一台服务器B,拥有8个核,16G内存。在服务器A上有一个Sqlserver实例,两个一样的数据库;在在服务器B上有一个SqlServer实例,一个数据库,下面是测试结果:

可以看到,同一实例,多数据库,还是有明显的优势,而多线程优势更大;由于两台服务器性能差距较大,双实例测试没有显示出优势,但多线程下还是比单实例单数据库好!

为什么PC机跟服务器测试的结论不一致?也许还是跟计算能力相关,PC机的计算负载太大,已经失去了测试的意义。

原文链接:

【编辑推荐】


MCS-51单片机扩展系统中,片外程序存储器和片外数据存储器共处同一个地址空间,为什么不会发生总线冲突?

硬件上,控制信号不一样:片外程序存储器工作,要PSEN信号有效;片外数据存储器工作,要RD或WR信号有效; 软件上,寻址不一样,片外程序存储器工作,要用MOVC, 片外数据存储器工作,要用MOVX; 虽然说他们的地址都是0000H~FFFFH,不会发生冲突的

access翻译为"进入"和别的同意思的单词的区别

access 有进入的意思,更多的情况下是接近的意思,是指一点点慢慢地进入,表示接近的还有approach approximation access advent arrival pursuit表示进入的有get into enter entry entering 比如进入房间,就是一下子进入,没有一点点接近的意思当然 access也可以表示一下子进入,但这个进入和enter的差别很抽象。access的进入是经过允许进入的,是合情合法的,但是enter就是纯粹的进入,比如说小偷入房用break into但不用access

请问怎样删除开始菜单里没有显示的目录文件?

建议使用【UNLOCKER 】删除;

办法如下:请使用UNLOCKER;有效;步骤如下:

1.下载UNLOCKER ,下好之后立即安装,

2. 启动UNLOCKER后,即可在使用你要删除的目标上右单击,

在出现下拉的菜单中选中UNLOCKER,打开,

3. 在动作中:选删除后即可; UNLOCKER 1.8.8 下载地址如下:使用 Unlocker ,使用 Unlocker 你就可以轻松、方便、有效地解决这个问题!

安装后右击需要删除的文件,选择unlocker一项即可!

试试,希望能帮你解决

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐