`
蔡华江
  • 浏览: 107934 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

oracle语义模式

阅读更多

在进行数据库查询的时候,通过打开语义模式可以在查询的时候忽略大小写。

写道
SQL> select * from ajlx where id = 1;

ID MC
---------- ----------------------------------------
1 aaBB

 通常使用like 'AABB' 时,会查不到任何数据。然后可以通过更改会话:

写道
SQL> ALTER SESSION SET NLS_COMP=LINGUISTIC;

会话已更改。

SQL> ALTER SESSION SET NLS_SORT=BINARY_CI;

会话已更改。

 这时执行like查询语句时,系统就会自动忽略掉大小写关系,将以上语句查询出来。

写道
SQL> select * from ajlx where id = 1 and mc like 'AABB';

ID MC
---------- ----------------------------------------
1 aaBB

 以上是在SQLPlus中的操作步骤,在一个会话中修改nls_comp和nls_sort来更改数据库查询和排序的方式。

如果是在JDBC中可以直接使用发送SQL语句来进行语义环境设置。

写道
session.createSQLQuery("ALTER SESSION SET NLS_COMP=LINGUISTIC")
.executeUpdate();
session.createSQLQuery("ALTER SESSION SET NLS_SORT=BINARY_CI")
.executeUpdate();

 但是设置 NLS_COMP=LINGUISTIC有着明显的性能问题,系统总是会进行全表扫描。

写道
LINGUISTIC

Comparisons for all SQL operations in the WHERE clause and in PL/SQL blocks should use the linguistic sort specified in the NLS_SORT parameter. To improve the performance, you can also define a linguistic index on the column for which you want linguistic comparisons.

 在oracle官方文档中说,当NLS_COMP被设置为LINGUISTIC时,会引起很严重的性能消耗,建议在该列上建立语义索引。

建立linguistic index:

Using Linguistic Indexes

Linguistic sorting is language-specific and requires more data processing than binary sorting. Using a binary sort for ASCII is accurate and fast because the binary codes for ASCII characters reflect their linguistic order. When data in multiple languages is stored in the database, you may want applications to sort the data returned from a SELECT...ORDER BY statement according to different sort sequences depending on the language. You can accomplish this without sacrificing performance by using linguistic indexes. Although a linguistic index for a column slows down inserts and updates, it greatly improves the performance of linguistic sorting with the ORDER BY clause.

You can create a function-based index that uses languages other than English. The index does not change the linguistic sort order determined by NLS_SORT . The index simply improves the performance. The following statement creates an index based on a German sort:

CREATE TABLE my_table(name VARCHAR(20) NOT NULL);
CREATE INDEX nls_index ON my_table (NLSSORT(name, 'NLS_SORT = German'));

/*The NOT NULL in the CREATE TABLE statement ensures that the index is used*/

After the index has been created, enter a SELECT statement similar to the following:

SELECT * FROM my_table ORDER BY name;

It returns the result much faster than the same SELECT statement without an index.

 

 

0
0
分享到:
评论

相关推荐

    Linux 下手动创建oracle数据库

    - `nls_length_semantics=BYTE`: 字符长度语义。 - `open_cursors=300`: 打开游标最大值。 - `pga_aggregate_target=94371840`: 程序全局区(PGA)的总目标大小。 - `processes=150`: 最大进程数。 - `remote_...

    空间数据库课件:第四讲 Oracle 及Oracle Spatial.ppt

    1. MDSYS模式,定义了空间数据的存储、语法和语义。 2. 空间索引机制,如R-Tree和四叉树,优化空间查询性能。 3. 一组丰富的空间操作过程和函数,用于执行空间查询和空间分析。 4. 相关管理工具,便于空间数据的管理...

    php连接Oracle的配置详解及测试代码

    这里,我们设置了默认字符集为UTF-8,关闭特权连接模式,并禁用了旧的oci关闭语义。 4. **重启PHP服务**: 完成上述步骤后,重启PHP服务,使配置生效。 接下来,让我们看一个简单的PHP连接Oracle数据库的示例代码...

    Oracle Spatial空间索引 解析

    1. MDSYS模式:这是Oracle Spatial的核心组件,用于定义几何数据的存储方式、语法和语义。它提供了一种结构化的方式来存储空间对象,如点、线、多边形等几何类型的数据。 2. 空间索引机制SDO-INDEX:这是一个为...

    oracle 执行计划 详解

    1. 解析:判断对象是否存在,是否有权限查询,语义解析(复杂的 SQL 简单化),检查缓存中是否有相同的 SQL 等等。 2. 优化:CBO 确定优化模式,确定访问路径,联接顺序,过程中通过很多综合因素估算出各种方式的...

    Oracle spacial空间数据库

    核心部分是MDSYS实现模式,定义了空间数据的存储格式、语法和语义,并提供了空间索引机制。此外,Oracle Spatial还提供了一套运算符和函数,支持空间查询、空间连接查询和空间分析操作。同时,它采用对象关系模型...

    Oracle Database Semantic Technologies Developer's Guide11g Relea

    Oracle数据库语义技术开发者指南11g发布2(11.2)提供了关于Oracle数据库对语义技术的支持的使用和参考信息,特别是基于资源描述框架(RDF)、RDF模式(RDFS)和Web本体语言(OWL)的数据和本体的存储、推理和查询...

    Oracle Streams Step by Step PPT

    Streams的特点还包括独立的捕获、传播和应用服务,以及通过Advanced Queues(AQ)实现的消息队列功能,支持发布/订阅模式,允许基于规则的捕获、转换和应用,与数据库的紧密集成,以及高度灵活的配置和内联转换。...

    2011MLDN李兴华Oracle课堂笔记

    7. HTML:超文本标记语言,虽然主要用在前端开发,但作为软件工程师,了解基本的网页结构和语义化标签对于整个项目开发是有帮助的。 8. JavaWEB:学习基于Java的Web应用开发,包括Servlet、JSP、以及Web框架(如...

    ORACLE_高效SQL分析

    Oracle提供了两种优化模式:基于规则的优化器(Rule-Based Optimizer, RBO)和基于成本的优化器(Cost-Based Optimizer, CBO)。 - **基于规则的优化器**:根据一组预定义的规则来决定执行计划,不考虑具体的资源消耗...

    一种基于MapReduce和Oracle的本体查询方法.pdf

    本体模型与关系数据库模型存在结构差异,Oracle采取垂直模式来转化本体,使用三元组表存储RDF数据。这种方法具有良好的可维护性和兼容性,便于在关系数据库中存储和处理本体信息。然而,随着本体规模的增长,这种...

    ORACLE培训SQL性能优化.pptx

    在解析阶段,ORACLE 会检查语法、语义和权限,并合并视图定义和子查询。然后,在绑定阶段,ORACLE 会查找绑定变量并赋值。在执行阶段,ORACLE 会应用执行计划并执行必要的 I/O 和排序操作。最后,在提取阶段,ORACLE...

    8课时ORACLE课件(适合学过其他数据库语言的学者)

    - 语义保密性:数据加密功能保护敏感数据,防止未经授权的访问。 4. **用户账号及权限管理** - 使用`CREATE USER`命令创建用户,并设定默认表空间、临时表空间、配额以及口令。 - 授权:通过`GRANT`命令赋予用户...

    oracle数据库教材2

    - **语义表达能力:** 能够表达用户的多种需求和数据之间的复杂关系。 - **易于理解和交流:** 作为系统分析师、设计师与用户之间沟通的桥梁。 - **灵活性:** 可以根据需求变化灵活调整。 - **易于转换:** ...

    oracle 错误代码一览表

    Oracle 错误代码一览表 Oracle 错误代码是 Oracle 数据库管理系统中的一种错误处理机制。当出现错误时,Oracle 数据库会生成一个独特的错误代码,以便开发人员和管理员可以快速识别和解决问题。 在 Oracle 错误...

    Oracle原理学习笔记.docx

    1. **语法与语义检查**: 确认SQL语句的有效性。 2. **查找与匹配**: - 在`V$ROWCACHE`中计算并查找HASH值。 - 在会话的UGA中进行匹配。 - 若未找到,则在library cache中进行匹配。 3. **读取数据**: - 根据执行...

    Semantic Technologies Developer's Guide 11g Release 2 (11.2).pdf

    Oracle数据库的语义技术开发者指南11g R2(11.2)版本是关于Oracle数据库对语义技术的支持,提供存储、推理和查询能力的使用和参考信息,数据和基于资源描述框架(RDF)、RDF模式(RDFS)和Web本体语言(OWL)的本体...

    OracleText全文检索.zip

    OracleText可以通过定制的检索模式实现KWIC效果,这对于研究文本、进行语义分析或新闻聚合等应用非常有用。 "catsearch.zip"可能包含了OracleText的分类搜索功能。分类搜索允许用户根据预定义的类别或者自定义的...

    ORACLE数据库中SQL优化解析.pdf

    在语法阶段,系统会对SQL语句进行语法和语义分析,确保语句的正确性。优化选择阶段根据优化器的模式(RBO或CBO)来选择最高效的查询计划。RowSourceGenerator接收优化后的方案,并生成最终的SQL执行计划。SQL执行...

Global site tag (gtag.js) - Google Analytics