编者按:本文作者为《分布式数据处理与查询》一书的作者 。文中讲述了如何通过并发查询实现对数据库资源的合理分配,实现高并发性以及解决多线程并行查询所带来的一些问题 。在文章开始之前,先简单介绍一下SQL2008 。这是一个基于多核 CPU执行的高性能数据库,它基于 SQLGreenEye内核设计,采用了DB2结构语言中最流行的 C#接口—— Thread接口 。该功能用于支持并行查询,但不能启动额外的线程资源 。

文章插图
1并发查询的概念
并发查询是指在多个事务之间进行交易查询的行为 。一般是指事务并发查询,以查询单字段为对象,在不同的事务间进行交易查询,这类查询对服务器的性能要求比较高,但是往往会给查询带来一些问题 。目前,并发查询还不是一个非常成熟的技术,许多关键技术还需要进一步研究 。例如,查询并发访问时需要提供一个线程资源名为(i) 。因此,目前还没有关于并发查询领域的研究成果 。
2高并发性
从SQL2008给出的查询实例图中可以看出,在进行并发查询时,由于各实例之间并没有关联,所以在内存上并不需要启动额外的线程资源 。而在其他实例之间,需要启动多个查询实例,因此这些查询实例都必须具有高并发性 。一般情况下,为了提高并发性和保证高可用性,在一些场景下需要使用额外的线程资源 。这里需要重点说明几点:一个实例必须要有高并发性的线程来处理,才能保证高可用性;单个线程应该不需要使用额外资源;线程应该具有高性能;当多个线程都需要启动额外的线程资源时,应具有很好的性能;如果一个线程没有达到一个高并发性的条件,那么应该放弃掉,继续去运行其他的查询;如果一个线程没有达到一个高并发性的条件,那么该线程也应该退出使用 。在本节中我们将详细阐述如何在内存上实现高并发性,以及如何保证在高可用下不影响线程的性能 。我们将在下一节详细阐述这一功能具体实现 。
3SQL2008系统架构
【SQL2008未能执行并行查询,启动多个线程和资源以执行必要查询】SQL2008采用了 SQLGreenEye进行开发,其中包含两个子系统:执行系统和查询系统 。执行系统主要包括两个部分:查询系统和数据分析 。SQL2008执行系统包含一个 Java集群,其基于 XML数据库,是执行操作系统用来支持 java/C/S的 。在查询系统中, JavaSQL采用了SQL2007作为执行系统;而数据分析则是与之相对应的子系统,它是实现数据库分析并处理多语言查询和响应过程的一种常用架构 。两个服务器分别管理SQL2008各事务节点 。两个服务器之间通过共享内存传递数据,并且共享内存采用了 Error和 LightScale存储数据 。该系统能够处理所有的表操作(表头显示和查询列表) 。
4并发查询分析
在一次并行查询时,如果不启动 Thread接口,线程并不会在同一个时刻查询,而是会随机地访问到其它的线程 。如果这个查询是并行的,那么此时该线程必须执行两次查询才能得到该事务的结果;如果不是,则不会触发这个查询,而是继续等待一个线程去查看 。但是从实践中来看,这个方法并不能很好地解决这一问题 。根据上述的分析,本文提出一个使用 Thread接口来解决并行查询难题的解决方案 。
- 如何执行轻断食
- 被执行人无力偿还债务怎么办 被执行人对子女有什么影响
- 就看下面执行力了 新十条后 直击各地通行实况
- exe可执行程序的32位和64位判断方法
- 家养宠物 猴子,为什么未能被人类驯化成“家养动物”
- 水产局是做什么的
- 首席执行官是做什么的
- 19083-2010标准的口罩有哪些,口罩执行标准19083-2010
- 什么是执行总裁
- 98号汽油最新价格是多少?10月15日0时起执行!
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
