0

我创建了一个包含几列的表。

我的表

  • Column1 -> RecordId (int)
  • Column2 -> 标题(varchar)
  • Column3 -> 短名称(varchar)
  • 第 4 列 -> (varchar)
  • 第 5 列 -> varchar

    ...

    ...

  • 第 10 列-> varchar

我不会将这张桌子与任何其他桌子一起加入。我在表中有 4 行数据。

当我查询特定 RecordId 的标题、短名称时,查询似乎太慢了。加载页面几乎需要 7 秒。

我没有在我的表上使用任何索引。您能否建议我如何提高我的表/查询性能?

我正在从我的 jsp 建立数据库连接,以便在列表框中显示查询结果。

我的代码看起来像这样- conn= DataObjectConnectionPool.getInstance().getConnection(); prepStmt = conn.prepStmt("select title,shortname from MyTable where RecordId=1");

4

3 回答 3

0

在有 4 行的表上创建索引绝对没有意义。如果您想在 dbms 中查看执行查询的时间,请在运行查询后从包缓存中获取一些数据。

select num_exec_with_metrics, total_act_time,  pool_read_time
  from table(mon_get_pkg_cache_stmt(null,null,null,null))

该表函数中有 100 个其他列涉及不同类型的等待等。

于 2012-11-02T01:14:04.437 回答
0

您应该在 RecordId 上定义一个主键。

这将产生在该列上创建索引的副作用。

如果您的页面在 7 秒内加载,并且表中只有 4 行数据,那么几乎可以肯定问题不在 DBMS 中。

于 2012-11-01T10:19:59.047 回答
-1

基本上你在你的代码中使用这个 sql 查询:

select title,shortname from MyTable where RecordId=1

RecordID从数据库端,您可以通过在列上创建索引然后执行 runstats ==>来加快查询速度

create index MyIndex on MyTable (RecordID) Compress yes Allow reverse scans;
runstats on table Mytable and indexes all shrlevel change;
于 2012-11-01T10:14:39.943 回答