【问题标题】:how to access columns which are indexed from JAVA code? [duplicate]如何访问从 JAVA 代码索引的列? [复制]
【发布时间】:2012-10-23 03:33:17
【问题描述】:

可能重复:
How to use index in select statement?

让我具体一点:

我在 oracle 10g 数据库中创建了某些表 x 和 y。我已使用CREATE INDEX 语句为表中的某些列编制索引,以便更快地检索记录。

我有访问这些表以使用准备好的语句对象检索数据的 Java 代码。但是我不清楚如何从这些索引表中检索数据。请帮忙。一个代码 sn-p 真的很有帮助。

【问题讨论】:

  • 你想获取这些索引数据的目的是什么?创建索引只是为了加快查询速度。
  • 你能展示一下你做了什么吗
  • @niraj deshmukh。这里是代码 sn-p: - 1. 对于数据库 - 在 x_table(名称,城市)上创建索引 index_name; /* 我已经在表 x_table 的列名和城市上创建了索引*/。我希望通过我的 java 代码使用 select 语句从该表的索引列中检索数据。我的 Select 语句:- select * from x_table where name = "" 。我的问题是:-我是否需要遵循任何特定规则来从索引列中检索数据,或者是否按照上面行中指定的正常方式完成。如果您还需要查看我的 java 代码,请通知我。
  • @Andrey Kapelchik:出于性能原因,我需要加快查询速度,因为我的表包含大量数据(超过 400 万行)

标签: java sql oracle10g


【解决方案1】:

数据库旨在选择最快的方式自行回答问题。假设您使用WHERE indexed_column = 'value' 之类的东西,Oracle 将决定使用任何可以自行提供帮助的索引;无需明确指定。

【讨论】:

  • 只是为了确认您所说的,我的 select 语句不需要遵循任何特定规则来从索引列中检索数据,我只能以正常方式使用 SELECT 语句。性能优化将由 oracle 自动完成。我的理解正确吗?
  • @user1466466 是;索引列与其他列没有什么不同,除了数据库将在某处有一个单独的数据库结构,允许它快速找到特定查询的行。鉴于上面的索引和 where 子句,Oracle 将看到它在 name 列上有一个索引,可以加快查询速度并使用它。您可以通过让数据库解释它将做什么来验证这一点:docs.oracle.com/cd/B10500_01/server.920/a96533/ex_plan.htm
  • 非常感谢您帮助我..
猜你喜欢
  • 2020-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-16
  • 1970-01-01
  • 2012-07-19
  • 2014-12-18
  • 2018-05-15
相关资源
最近更新 更多