加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

关于单线程数据库与多线程数据库性能

发布时间:2020-12-12 05:51:48 所属栏目:MsSql教程 来源:网络整理
导读:H2是一个单线程数据库,在性能方面有良好的声誉.其他数据库是多线程的. 我的问题是:多线程数据库何时变得比单个线程数据库更有趣?有多少用户?有多少个进程?什么是触发器?谁有经验分享? 摘要 通常的瓶颈是磁盘访问 SSD很快,但很脆弱(故障程序是必须的) 单
H2是一个单线程数据库,在性能方面有良好的声誉.其他数据库是多线程的.

我的问题是:多线程数据库何时变得比单个线程数据库更有趣?有多少用户?有多少个进程?什么是触发器?谁有经验分享?

摘要

>通常的瓶颈是磁盘访问
> SSD很快,但很脆弱(故障程序是必须的)
>单个线程系统上的一个长查询将阻止所有其他查询
>配置多线程系统可能很棘手
>即使在单核系统上,多线程数据库也是有益的

解决方法

这是我的意见:

通常,DB系统的瓶颈(或最慢的部分)是磁盘. CPU仅在算术运算,处理或CPU执行的任何其他任务期间出现峰值.通过适当的体系结构,多线程可以帮助将查询的负载抵消到CPU上,而不是进行慢速磁盘读/写操作.在某些情况下,使用CPU周期计算值更快,而不是创建计算列(之前已保存到磁盘)并从磁盘读取此列.

在某些RDBMS中,有一个临时DB(tempdb),该实例上的所有DB都使用它来进行排序,散列,临时变量等…多线程和拆分此tempdb文件可用于提高tempdb的吞吐量从而提高整体服务器性能.

使用多线程(并行),可以将查询的结果集拆分为在服务器的不同核心上进行处理,而不是单独使用一个核心.此功能并不总能提高性能,但有时会出现这种情况,因此可以使用该功能.

DB可用的线程用于多种用途:读取/写入磁盘,用户连接,后台作业,锁定/锁存,网络IO等等…根据操作系统体系结构,线程被抢先送入CPU并且使用等待和队列进行管理.如果CPU可以很快地处理这些线程,那么等待时间将会很短.多线程数据库将比单线程数据库更快,因为在单线程数据库中,只会回收一个线程而不是让其他部分可用.

可伸缩性也成为一个问题,因为管理和执行扩展的DB系统需要更多的线程.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读