我创建了一个包含几列的表。
MyTable
Column5 - > VARCHAR
...
...
我没有将此表与任何其他表一起加入。我在表格中有4行数据。
当我查询特定RecordId的标题,短名称时,查询似乎太慢了。加载页面几乎需要7秒钟。
我没有在我的表上使用任何索引。你能否建议我如何提高我的表/查询性能?
我正在从我的jsp进行数据库连接,以便在列表框中显示查询结果。
我的代码看起来像这样 - conn = DataObjectConnectionPool.getInstance()。getConnection(); prepStmt = conn.prepStmt(“选择标题,来自MyTable的短名称,其中RecordId = 1”);
答案 0 :(得分:0)
您应该在RecordId上定义主键。
这会产生在该列上创建索引的副作用。
BUT
如果您的页面在7秒内加载,并且表中只有4行数据,则问题几乎肯定不在DBMS中。
答案 1 :(得分: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个其他列涉及不同类型的等待等。
答案 2 :(得分:-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;