0
で
id timestamp status
167 6/28/2016 8:05:58 PM 0
167 6/28/2016 8:06:02 PM 0
167 6/28/2016 8:06:05 PM 0
167 6/28/2016 8:08:06 PM 0
167 6/28/2016 8:08:10 PM 0
167 6/28/2016 8:08:13 PM 3
167 6/28/2016 8:08:17 PM 3
167 6/28/2016 8:10:41 PM 3
167 6/28/2016 8:10:45 PM 3
167 6/28/2016 8:10:48 PM 3
167 6/28/2016 8:10:51 PM 0
167 6/28/2016 8:10:55 PM 0
167 6/28/2016 8:26:40 PM 0
167 6/28/2016 8:26:44 PM 0
167 6/28/2016 8:26:47 PM 3
167 6/28/2016 8:26:50 PM 3
167 6/28/2016 8:29:19 PM 3
167 6/28/2016 8:29:23 PM 3
167 6/28/2016 8:29:26 PM 0
167 6/28/2016 8:29:29 PM 0
167 6/28/2016 8:30:33 PM 0
167 6/28/2016 8:30:37 PM 0
167 6/28/2016 8:30:40 PM 3
167 6/28/2016 8:30:44 PM 3
167 6/28/2016 8:33:11 PM 3
167 6/28/2016 8:33:15 PM 3
167 6/28/2016 8:33:18 PM 0
167 6/28/2016 8:33:21 PM 0
167 6/28/2016 8:33:45 PM 0
167 6/28/2016 8:33:48 PM 0
167 6/28/2016 8:33:52 PM 0
167 6/28/2016 8:33:55 PM 3
167 6/28/2016 8:33:58 PM 3
167 6/28/2016 8:34:59 PM 3
167 6/28/2016 8:35:03 PM 3
上記のデータは、当社のIoT
システムの一つからのものであり、それは基本的に機械がWRTにあるものの状態に告げる私は時間単位で生産部品を計算したいtimestamp
クエリのチューニングDashdb
0 being Stop and 3 being running.
で1時間であり、このため論理はマシンの状態が3から0に変わったかどうかを確認してからaprtを生成することです。
私は以下の質問を書いており、意図した結果が得られています。 3〜5台のマシンで実行すると、クエリはうまく動作します.24時間以内に100台のマシンに対して同じものが実行されると、時間がかかります。今のところ、クエリは1時間のデータに対してデバイスごとに14分かかっています。
インフラ使用 - DashDB in bluemix
、このデータベースへのデータはcloudant
からbluemix
サービスにプッシュされます。
====
select a.runstatus,a.runcount ,b.runstatus,b.runcount from (SELECT a.run_status runstatus, count(a.run_status) runcount
FROM machinedata a where a.run_status <> (SELECT b.run_status
FROM machinedata b
WHERE a.machine_id = b.machine_id
AND a.timestamp > b.timestamp
ORDER BY b.timestamp DESC
LIMIT 1
) and a.machine_id = 167 and a.run_status=0 AND a.`timestamp` BETWEEN '2016-06-28 20:00:01'
AND '2016-06-28 20:59:59' group by a.run_status) as a,
(SELECT a.run_status runstatus, count(a.run_status) runcount
FROM machinedata a where a.run_status <> (SELECT b.run_status
FROM machinedata b
WHERE a.machine_id = b.machine_id
AND a.timestamp > b.timestamp
ORDER BY b.timestamp DESC
LIMIT 1
) and a.machine_id = 167 and a.run_status=3 AND a.`timestamp` BETWEEN '2016-06-28 20:00:01'
AND '2016-06-28 20:59:59' group by a.run_status) as b
HIトルステン、構文は –
@LohithKumarエラー近い「によって順序」私は再びそれを検証し、私はそれを貼り付けたとして、それが正常に動作を与えています。 –
ここに私のテストのために作成したテーブル '' 'CREATE TABLE MACHINEDATA(ID INT、TIMESTAMP TIMESTAMP、STATUS INT)' '' –