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

oracle sql =号左边含有 TRIM 严重影响性能!

阅读更多

这学期的项目中,用hibernate和oracle。表结构我们不能改,这样的遗留系统用hibernate有点麻烦。汗!别人把可变长的字符类型设计为CHAR,郁闷死。这样所有?形式的sql语句基本上无效(不是恰好这么长就找不到数据),这是oracle的JDBC限定了(mysql的JDBC不会)。然后就想到在=号左边用TRIM可以解决PrepareStatement找不到数据的问题。

     麻烦来了。同学用100W行数据来测试。发现比较卡。然后追踪hibernate的SQL日志发现有trim的语句就慢。然后把此SQL语句在PL/SQL客户端试下,发现在26秒才能找到结果。汗!这么严重!去了TRIM不到1秒的事情。

     字段类型的设计不好,就这样...

     用TRIM的初衷是为了解决 oracle jdbc char 字段 PreparedStatement 查询问题 .

分享到:
评论
4 楼 chenlb 2008-10-04  
junmine 写道

连接的字段类型不一致 左边用TRIM去掉空格确实不行 可以在=右边用RPAD补全


当时不知道有rpad, 所以解决办法是不用PreparedStatement
3 楼 junmine 2008-09-25  
连接的字段类型不一致
左边用TRIM去掉空格确实不行
可以在=右边用RPAD补全
2 楼 chenlb 2007-12-30  
小弟,我现在才知道, 谢谢.
1 楼 NetBus 2007-12-26  
人人都知道事情。除非建了trim函数索引!

相关推荐

    技巧:MyBatis 中的trim标签,好用!.zip

    技巧:MyBatis 中的trim标签,好用!.zip技巧:MyBatis 中的trim标签,好用!.zip技巧:MyBatis 中的trim标签,好用!.zip技巧:MyBatis 中的trim标签,好用!.zip技巧:MyBatis 中的trim标签,好用!.zip技巧:...

    Oracle SQL性能优化

    - **避免IS NULL等判断**:在索引列上使用这些判断会影响性能。 - **使用ROWID**:结合索引,提高查询速度。 - **复合索引使用前导列**:提高索引的使用效率。 ### 并行控制与锁策略 并行控制是Oracle数据库的重要...

    Oracle Sql基础 Oracle Sql基础 Oracle Sql基础

    ### Oracle SQL 基础知识点概述 #### 一、Oracle SQL 运行环境与SQL语法 **1.1 SQL 的起源与分类** - **1.1.1 SQL 的起源** - SQL(Structured Query Language)即结构化查询语言,首次出现是在1970年代初期由...

    Oracle提高SQL查询效率(SQL优化).doc

    Oracle 提高 SQL 查询效率(SQL 优化) 本文将详细介绍 Oracle 中提高 SQL 查询效率的技巧和策略,包括选择最有效率的表名顺序、WHERE 子句中的连接顺序、SELECT 子句中避免使用‘*’、减少访问数据库的次数、使用 ...

    ORACLE SQL 语句(典型应用总结).pdf

    根据提供的文档信息,本文将对《ORACLE SQL 语句(典型应用总结)》中的关键知识点进行详细解读与总结。 ### 第一章 基本SELECT语句 #### 1. SQL语法要求 在Oracle中编写SQL语句时,需要注意以下几点: - **大小写...

    oracle中nvl、decode、trim、rtrim的常见用法

    ### Oracle中NVL、DECODE、TRIM、RTRIM的常见用法 #### NVL函数 在Oracle数据库中,NVL函数是一个非常实用的功能,主要用于处理NULL值。其基本语法如下: ``` NVL(expression1, expression2) ``` 其中: - `...

    oracle (sql语法) .doc

    Oracle SQL语法是数据库管理员和开发人员在操作Oracle数据库时必须掌握的重要技能。下面将详细解释文档中提及的一些关键知识点。 一、排序显示 在Oracle SQL中,`ORDER BY`子句用于对查询结果进行排序。默认是升序...

    超市管路系统vb做的

    Sql = Sql & Trim(Me.cboType.Text) If Me.cboType.ListIndex = 0 Or Me.cboType.ListIndex = 3 _ Or Me.cboType.ListIndex = 4 Then Sql = Sql & "=" & Trim(Me.txtData.Text) Else Sql = Sql & "='" & Trim...

    oracle数据库sql基础

    **Oracle数据库SQL基础** 在IT领域,Oracle数据库是全球广泛使用的数据库管理系统之一,而SQL(结构化查询语言)则是与数据库交互的基础工具。本篇将深入讲解Oracle SQL的基础知识,包括基本的SQL语句、单行函数、...

    oracle sql内置函数大全

    Oracle SQL内置函数是数据库管理、查询和数据分析中的关键工具,它们极大地增强了SQL语言的功能和灵活性。在Oracle数据库系统中,内置函数分为多种类型,包括数值函数、字符串函数、日期时间函数、转换函数、数学...

    Oracle SQL笔记.pdf

    根据提供的文件信息,我们可以归纳出一系列重要的Oracle SQL知识点,这些知识点涵盖了从基本的SQL概念到高级的数据库管理技术。下面是对这些知识点的详细说明: ### 1. SQL介绍 #### 结构化查询语言 (Structured ...

    oracle-function--api.zip_oracle_oracle API_oracle sql api

    本资料“oracle-function--api.zip”包含了Oracle数据库中的一些核心API和SQL函数,特别是针对字符串、日期和数字类型的处理,对于Oracle开发人员来说极具参考价值。 一、Oracle SQL API Oracle SQL API是Oracle...

    Java中Oracle操作绑定变量使用用户工具模块解决方案

    这种方式虽然代码简洁,但会导致每次执行的SQL语句不同,进而无法利用到Oracle数据库的SQL缓存机制,从而降低了性能。 #### 二、问题阐述 假设我们有一个简单的员工表`employee`,包含字段`id`, `name`, `...

    Oracle SQL性能优化.doc

    若使用`CHOOSE`模式,则可能因未运行`analyze`导致优化器自动退化为基于规则的模式,从而影响性能。 #### 二、访问Table的方式 - **全表扫描(Full Table Scan)**:顺序访问表中的每一条记录。Oracle通过一次读取多...

    Oracle sql内置函数大全

    Oracle SQL 内置函数大全 Oracle SQL 中提供了多种内置函数,用于实现各种字符串、数字和日期处理操作。...这些内置函数可以帮助我们更好地处理字符串、数字和日期等数据,提高 Oracle SQL 的开发效率和性能。

    SQL语句中Trim的使用问题.doc

    但是,在使用 Trim 函数时,需要注意一些问题,以避免对 SQL 语句的性能产生不良影响。 首先,需要注意的是,当使用 Trim 函数时,Oracle 的 SQL 优化器将不会使用对应字段的索引。因此,即使字段已经创建了索引,...

    Oracle10g US7ASCII 编码中文无法导入sqlserver问题解决

    ### Oracle10g US7ASCII 编码中文无法导入 SQL Server 问题解决 #### 背景介绍 在跨数据库平台的数据迁移过程中,经常会遇到由于源数据库与目标数据库编码不一致而导致的数据导入失败问题。本篇文章主要针对的是从...

    Oracle SQL 内置函数总结

    Oracle SQL 内置函数是数据库查询和数据处理的重要组成部分,它们极大地增强了SQL语言的功能和灵活性。在Oracle数据库中,有多种内置函数用于处理各种数据类型,包括数值、字符串、日期和时间、以及复合数据类型。...

    鸿鹄论坛_oracle四大宝典之1:Oracle Sql基础.

    ### 鸿鹄论坛_oracle四大宝典之1:Oracle Sql基础 #### 一、SQL的起源和分类 ##### 1.1 SQL的起源 SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作数据库的标准计算机语言。它最早由IBM的...

Global site tag (gtag.js) - Google Analytics