`
lixw
  • 浏览: 200937 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

信息点查询优化

阅读更多

     Demo版本中:查询2个信息点耗时在1-2分钟左右,考虑了以下策略进行优化,提升查询性能:

1、合并信息点,对于查询规则中从同一个库表条件相同的查询进行合并,调用查询接口,返回结果后进行恢复,为了满足后面的恢复,对于原来的信息点增加了两个字段:attachIndex和attachId,前者表示合并到的查询规则列下标,后者表示合并到的信息点唯一编号。

2、动态构建数据库连接池,备选下面两种方法:

  • 以Hibernate配置文件为模板,应用C3P0数据库连接池,在内存中动态修改数据库相关连接的配置;
  • 使用Java中的动态代理实现数据库连接池,参考[这里 ]。

3、使用DB2的联邦数据库(需要付费插件)或者Oracle的DBLink映射远程数据库到本地,关联查询。

4、优化查询路由(不清楚)。

5、由于多个信息点是无关的,考虑采用多线程,别人的建议是:ThreadPool和WAS提供的TaskManager,后来使用了自己简单设计的一个多线程并发查询,简单说明如下:

  • QueryUnit: 待查询信息点,至少包含属性:name, value和state(INIT, RUNNING, TIMEOUT, EXCEPTION, SUCCESS);
  • BusiHandler: 查询逻辑,包含方法:public void query(QueryUnit qu) throws Exception;
  • ConsumeThread: 取值线程,包括属性:boolean flag, List<QueryUnit> queryUnitList;
  • ProduceThread: 设值线程,包括属性:ConsumeThread ct, QueryUnit qu, long lastQueryTime, long singleThreadTimeout等;
  • ThreadManager: 线程管理器,包括属性:int singleTheadTimeout, int maxThreadCount, int circleCount, List<QueryUnit> quList等, 包括方法:public void boot(); public List<QueryUnit> getData(); List<Info> getSpecifiList(int begin, int size, List<Info> quList)等。

 

     系统经过使用以上优化后查询42个信息点经过合并后为26个信息点(信息点本身的合并潜力很大),设置maxThreadCount=30,第一次查询耗时为5-8秒,以后耗时均在3秒以内。(以上数据均在P4 3.0、2G内存和Tomcat5.5环境下测试)

 

     遗留问题:

  • 采用Hibernate模板方式配置的数据库连接池在发布到WAS6.1时总是报错,提示在hibernate-template.cfg.xml中存在非法字符(晕倒),后来改为全部在内存中设置;
  • 多线程并发查询的设计抽象不足,应用场景改变时需要频频修改,继续改进中……
  • 多线程适用于有多个设值线程的情况。
分享到:
评论

相关推荐

    数据库查询优化论文

    ### 数据库查询优化的核心知识点 #### 一、查询优化的重要性 数据库查询优化是数据库管理系统(DBMS)中的关键组件,其目标在于选择最有效的查询执行计划,以最小化资源消耗(如CPU时间、I/O操作)并提高响应速度。...

    Oracle查询优化改写 技巧与案例.pdf

    Oracle查询优化是数据库管理中的重要环节,...总之,Oracle查询优化涉及到多方面的知识点和实际操作技巧。本文件通过介绍具体的优化技巧和案例分析,帮助读者理解并掌握这些技术,以提高Oracle数据库查询的效率和性能。

    查询优化.pdf

    本文将深入探讨MySQL中的查询优化过程及其相关知识点。 #### 二、查询优化流程 MySQL查询优化主要分为以下几个步骤: 1. **条件优化**:优化器首先会对查询中的条件进行简化,例如将表达式“a = 1 AND b &gt; a”...

    MS SQL Server查询优化方法

    #### 二、MS SQL Server查询优化核心知识点 ##### 1. **减少不必要的查询** - **避免冗余查询**:确保每次查询都是必要的,避免重复执行相同或相似的查询。 - **利用缓存机制**:对于频繁使用的查询结果,可以...

    oracle查询优化改写 技巧与案例

    本文将基于《Oracle查询优化改写技巧与案例》这一主题,详细介绍其核心知识点及其应用场景。 #### 一、Oracle查询优化基础 ##### 1.1 查询执行计划 - **定义**:查询执行计划是指Oracle数据库执行SQL语句的具体...

    informix数据库sql查询优化

    本文将围绕“informix数据库sql查询优化”这一主题展开讨论,重点介绍SQL单表查询优化的相关知识点。 #### SQL单表查询优化概述 单表查询是指仅涉及一个表的SQL查询语句。虽然这类查询通常比多表连接查询简单,但...

    空间数据库查询处理与优化

    总结来说,空间数据库查询处理与优化是一个涉及数据操作、索引构建、查询优化、分布式处理等多个层面的复杂领域,目标是有效地管理和检索地理空间信息,以支持地理信息系统(GIS)和其他地理位置依赖的应用。

    mysql高级优化查询

    通过上述对 MySQL 高级优化查询的深入解析,我们不仅了解了查询缓存的原理及其工作流程,还探讨了 MySQL 的内部机制,包括存储引擎、锁机制、索引管理和查询优化器等关键组件。此外,还介绍了一些额外的优化策略,如...

    Oracle查询优化.rar

    以下是对Oracle查询优化的一些核心知识点的详细解析: 1. **执行计划**:在Oracle中,执行计划是数据库执行SQL语句的具体步骤。通过`EXPLAIN PLAN`或`DBMS_XPLAN`包,我们可以查看SQL语句的执行计划,理解数据的...

    查询优化技术及SQL Server2000的查询优化方法.pdf

    查询优化器会基于统计信息对可能的执行计划进行评估,并根据成本模型选择最佳的执行路径。SQL Server 2000使用基于成本的优化器(CBO),它会估算不同执行路径的成本,然后选择成本最低的计划执行。 5. 使用查询...

    2.mysql查询性能优化1

    在本节中,我们讨论了 MySQL 查询性能优化的几个重要方面,包括查询优化的重要性、查询优化技术、MySQL 查询优化工具等。通过了解这些知识点,数据库管理员可以更好地优化 MySQL 查询性能、提高数据库的响应速度、...

    SQL Server海量数据库的查询优化及分页算法方案

    一、SQL Server查询优化 1. **索引优化**:索引是提升查询速度的关键。非聚簇索引用于快速查找特定值,而聚簇索引决定数据在表中的物理存储顺序。创建合适的索引,尤其是在经常用于WHERE子句的列上,可以显著减少...

    基于查询优化器的分布式空间查询优化方法.pdf

    2. **查询优化**:在数据库系统中,查询优化指的是根据数据库的统计信息和索引情况,选择一种或多种效率最高的数据检索方式的过程。优化器是数据库管理系统(DBMS)中负责这一任务的关键组件。 3. **过滤器**:在...

    MySQL海量数据查询优化策略.

    在处理MySQL海量数据查询优化时,我们需要关注的策略包括但不限于以下几点: 1. 优化索引使用:避免全表扫描至关重要。为此,应当在查询条件(WHERE)和排序(ORDER BY)涉及的列上创建索引。索引有助于数据库管理...

    SQL Server 2008查询性能优化 源代码

    - 维护准确的统计信息有助于查询优化器估算行数,从而选择更好的执行计划。 - 定期使用`UPDATE STATISTICS`命令更新统计信息。 6. **临时表和表变量**: - 在大量数据处理时,临时表和表变量可以提高性能,但需...

    oracle数据查询慢如何优化.txt

    本文将从几个方面对Oracle查询调优进行详细的解析,包括但不限于SQL语句优化、索引管理和统计信息收集等关键知识点。 #### 一、SQL语句优化 SQL语句是数据库操作的核心,其编写质量直接影响着查询性能。优化SQL...

    时间都去哪儿了 - 深入学习SQL查询优化

    在本节中,我们将深入探讨 SQL 查询优化的相关知识点。SQL 查询优化是数据库性能优化的关键步骤,旨在提高数据库的查询效率和性能。 查询执行过程 查询执行过程是 SQL 查询优化的基础。整个过程可以分为以下几个...

    关系查询处理与查询优化PPT学习教案.pptx

    《关系查询处理与查询优化》的学习教案主要涵盖了关系数据库系统中的关键概念,包括查询处理的步骤、查询优化的重要性以及优化的策略。以下是这些知识点的详细解释: **8.1 关系数据库系统的查询处理** 1. **查询...

    oralce优化查询

    从提供的文件信息中可以看出,这是一个关于Oracle数据库查询优化的资料。接下来,我将详细解释这个领域的一些关键知识点,并结合查询优化的概念来深入探讨。 Oracle优化查询指的是在Oracle数据库中,通过一系列的...

Global site tag (gtag.js) - Google Analytics