4亿条数据表读取最新时间戳,慢啊,求帮助!

问题描述:自己做了一个采集器,在采集器初始化时,要读td_PlantModel_Tests里的数据,对比每个采集点在数据库里的时间戳和配置文件的时间戳,
总共有500多个变量吧,启动非常慢,要花三四个小时
其中用了这条语句作为读取数据库时间戳的SQL
select * from db2admin.td_PlantModel_Tests_bak1 where variable_id = 17 order by Result_On DESC fetch first 1 rows only
建表语句:
create table DB2ADMIN.td_PlantModel_Tests
(
  Test_ID bigint not null primary key generated by default as identity(start with 1 increment by 1)  ,
  Variable_ID integer,
  Entry_User_ID integer,
  Entry_On timestamp,
  Event_Subtype_ID integer,
  Result varchar(25),
  Result_On timestamp,
  Lot_ID varchar(50),
  Extend_ID1 varchar(50),
  Extend_ID2 varchar(50)
) NOT LOGGED INITIALLY;
create index DB2ADMIN.VariableIDIndex on DB2ADMIN.TD_PLANTMODEL_TESTS(Variable_ID) cluster compress no disallow reverse scans;
create index DB2ADMIN.ResultOnIndex on DB2ADMIN.TD_PLANTMODEL_TESTS(Result_On) compress no;
参与6

5同行回答

macrozengmacrozeng数据库管理员IBM
虽然只是取了一行结果,但是还是需要对所有的行进行排序。显示全部
虽然只是取了一行结果,但是还是需要对所有的行进行排序。收起
政府机关 · 2014-04-17
浏览904
jimmyjimmy数据仓库工程师招行软件中心
另外创建一张表,保存最大时间戳显示全部
另外创建一张表,保存最大时间戳收起
银行 · 2014-04-01
浏览820
wolfopwolfop其它Why should I tell you?
倒,显然用min比order好多了。order by那个执行计划,搞死系统吧显示全部
倒,显然用min比order好多了。order by那个执行计划,搞死系统吧收起
IT其它 · 2014-03-31
浏览828
amormioslamormiosl系统工程师DC
我觉得这里好像有些问题"order by Result_On DESC fetch first 1 rows only"用min()更好一些吧?显示全部
我觉得这里好像有些问题"order by Result_On DESC fetch first 1 rows only"
用min()更好一些吧?收起
系统集成 · 2014-03-31
浏览868
hp_leetaedong14hp_leetaedong14数据库管理员DD
看看有没有走索引,走索引的话,不应该这么慢的。显示全部
看看有没有走索引,走索引的话,不应该这么慢的。收起
互联网服务 · 2014-03-31
浏览841

提问者

kevinlv
数据库管理员中国科学院沈阳自动化研究所

相关问题

问题状态

  • 发布时间:2014-03-31
  • 关注会员:1 人
  • 问题浏览:10136
  • 最近回答:2014-04-17
  • X社区推广