Hi all,
I need to analyze a performance bottleneck in a complex environment.
So I decided to split down each component and split down the query to most
simple level.
*scenario:*
- only 1 table "person" with 2 columns
id (long), CURRENTCITYID(long) (both indexed)
10_000_000 rows
*Task: *
- make a group by of one indexed field.
select CURRENTCITYID, count(CURRENTCITYID) from
"worldPerson_AFF_CCID".person group by CURRENTCITYID;
Result:
CURRENTCITYID; COUNT(CURRENTCITYID)
1; 3000
2; 4000
...
12,799 rows selected (14.986 seconds)
Issue: a group by within a single table is very slow
Question: how to analyse and find bottleneck? any performance tuning hints?
Currently using 1 server/1 node
Also did same test with 10 servers/ 10 nodes, which imporved the
performance, but I would need 16 servers to reach the speed of one PG server
So I would like to understand better how ignite works for group opperations.
And what can be done on tuning side?
0: jdbc:ignite:thin://127.0.0.1/> explain select CURRENTCITYID,
count(CURRENTCITYID) from "worldPerson_AFF_CCID".person group by
CURRENTCITYID;
+--------------------------------+
| PLAN |
+--------------------------------+
| SELECT
__Z0.CURRENTCITYID AS __C0_0,
COUNT(__Z0.CURRENTCITYID) AS __C0_1
FROM "worldPerson_AFF_CCID".PERSON __Z0
/* "worldPerson_AFF_CCID".PERSON_CURRENTCITYID_IDX */
GROUP BY __Z0.CURRE |
| SELECT
__C0_0 AS CURRENTCITYID,
CAST(SUM(__C0_1) AS BIGINT) AS __C0_1
FROM PUBLIC.__T0
/* PUBLIC."merge_scan" */
GROUP BY __C0_0 |
+--------------------------------+
2 rows selected (0.008 seconds)
--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/