diff --git a/benchmark/postgresql/benchmark.sh b/benchmark/postgresql/benchmark.sh new file mode 100755 index 00000000000..4a7139ec79d --- /dev/null +++ b/benchmark/postgresql/benchmark.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +grep -v -P '^#' queries.sql | sed -e 's/{table}/hits_100m_pg/' | while read query; do + + echo 3 | sudo tee /proc/sys/vm/drop_caches + + echo "$query"; + for i in {1..3}; do + # For some reason JIT does not work on my machine + sudo -u postgres psql tutorial -t -c 'set jit = off' -c '\timing' -c "$query" | grep 'Time' | tee --append log + done; +done; diff --git a/benchmark/postgresql/instructions.md b/benchmark/postgresql/instructions.md new file mode 100644 index 00000000000..296fa377bd1 --- /dev/null +++ b/benchmark/postgresql/instructions.md @@ -0,0 +1,142 @@ +Create a table in PostgreSQL: + +``` +CREATE TABLE hits_100m_pg +( + WatchID BIGINT NOT NULL, + JavaEnable SMALLINT NOT NULL, + Title TEXT NOT NULL, + GoodEvent SMALLINT NOT NULL, + EventTime TIMESTAMP NOT NULL, + EventDate Date NOT NULL, + CounterID INTEGER NOT NULL, + ClientIP INTEGER NOT NULL, + RegionID INTEGER NOT NULL, + UserID BIGINT NOT NULL, + CounterClass SMALLINT NOT NULL, + OS SMALLINT NOT NULL, + UserAgent SMALLINT NOT NULL, + URL TEXT NOT NULL, + Referer TEXT NOT NULL, + Refresh SMALLINT NOT NULL, + RefererCategoryID SMALLINT NOT NULL, + RefererRegionID INTEGER NOT NULL, + URLCategoryID SMALLINT NOT NULL, + URLRegionID INTEGER NOT NULL, + ResolutionWidth SMALLINT NOT NULL, + ResolutionHeight SMALLINT NOT NULL, + ResolutionDepth SMALLINT NOT NULL, + FlashMajor SMALLINT NOT NULL, + FlashMinor SMALLINT NOT NULL, + FlashMinor2 TEXT NOT NULL, + NetMajor SMALLINT NOT NULL, + NetMinor SMALLINT NOT NULL, + UserAgentMajor SMALLINT NOT NULL, + UserAgentMinor CHAR(2) NOT NULL, + CookieEnable SMALLINT NOT NULL, + JavascriptEnable SMALLINT NOT NULL, + IsMobile SMALLINT NOT NULL, + MobilePhone SMALLINT NOT NULL, + MobilePhoneModel TEXT NOT NULL, + Params TEXT NOT NULL, + IPNetworkID INTEGER NOT NULL, + TraficSourceID SMALLINT NOT NULL, + SearchEngineID SMALLINT NOT NULL, + SearchPhrase TEXT NOT NULL, + AdvEngineID SMALLINT NOT NULL, + IsArtifical SMALLINT NOT NULL, + WindowClientWidth SMALLINT NOT NULL, + WindowClientHeight SMALLINT NOT NULL, + ClientTimeZone SMALLINT NOT NULL, + ClientEventTime TIMESTAMP NOT NULL, + SilverlightVersion1 SMALLINT NOT NULL, + SilverlightVersion2 SMALLINT NOT NULL, + SilverlightVersion3 INTEGER NOT NULL, + SilverlightVersion4 SMALLINT NOT NULL, + PageCharset TEXT NOT NULL, + CodeVersion INTEGER NOT NULL, + IsLink SMALLINT NOT NULL, + IsDownload SMALLINT NOT NULL, + IsNotBounce SMALLINT NOT NULL, + FUniqID BIGINT NOT NULL, + OriginalURL TEXT NOT NULL, + HID INTEGER NOT NULL, + IsOldCounter SMALLINT NOT NULL, + IsEvent SMALLINT NOT NULL, + IsParameter SMALLINT NOT NULL, + DontCountHits SMALLINT NOT NULL, + WithHash SMALLINT NOT NULL, + HitColor CHAR NOT NULL, + LocalEventTime TIMESTAMP NOT NULL, + Age SMALLINT NOT NULL, + Sex SMALLINT NOT NULL, + Income SMALLINT NOT NULL, + Interests SMALLINT NOT NULL, + Robotness SMALLINT NOT NULL, + RemoteIP INTEGER NOT NULL, + WindowName INTEGER NOT NULL, + OpenerName INTEGER NOT NULL, + HistoryLength SMALLINT NOT NULL, + BrowserLanguage TEXT NOT NULL, + BrowserCountry TEXT NOT NULL, + SocialNetwork TEXT NOT NULL, + SocialAction TEXT NOT NULL, + HTTPError SMALLINT NOT NULL, + SendTiming INTEGER NOT NULL, + DNSTiming INTEGER NOT NULL, + ConnectTiming INTEGER NOT NULL, + ResponseStartTiming INTEGER NOT NULL, + ResponseEndTiming INTEGER NOT NULL, + FetchTiming INTEGER NOT NULL, + SocialSourceNetworkID SMALLINT NOT NULL, + SocialSourcePage TEXT NOT NULL, + ParamPrice BIGINT NOT NULL, + ParamOrderID TEXT NOT NULL, + ParamCurrency TEXT NOT NULL, + ParamCurrencyID SMALLINT NOT NULL, + OpenstatServiceName TEXT NOT NULL, + OpenstatCampaignID TEXT NOT NULL, + OpenstatAdID TEXT NOT NULL, + OpenstatSourceID TEXT NOT NULL, + UTMSource TEXT NOT NULL, + UTMMedium TEXT NOT NULL, + UTMCampaign TEXT NOT NULL, + UTMContent TEXT NOT NULL, + UTMTerm TEXT NOT NULL, + FromTag TEXT NOT NULL, + HasGCLID SMALLINT NOT NULL, + RefererHash BIGINT NOT NULL, + URLHash BIGINT NOT NULL, + CLID INTEGER NOT NULL +); +``` + +Create a dump from ClickHouse: + +``` +SELECT WatchID::Int64, JavaEnable, replaceAll(replaceAll(replaceAll(toValidUTF8(Title), '\0', ''), '"', ''), '\\', ''), GoodEvent, EventTime, EventDate, CounterID::Int32, ClientIP::Int32, RegionID::Int32, + UserID::Int64, CounterClass, OS, UserAgent, replaceAll(replaceAll(replaceAll(toValidUTF8(URL), '\0', ''), '"', ''), '\\', ''), replaceAll(replaceAll(replaceAll(toValidUTF8(Referer), '\0', ''), '"', ''), '\\', ''), Refresh, RefererCategoryID::Int16, RefererRegionID::Int32, + URLCategoryID::Int16, URLRegionID::Int32, ResolutionWidth::Int16, ResolutionHeight::Int16, ResolutionDepth, FlashMajor, FlashMinor, + FlashMinor2, NetMajor, NetMinor, UserAgentMajor::Int16, replaceAll(replaceAll(replaceAll(toValidUTF8(UserAgentMinor::String), '\0', ''), '"', ''), '\\', ''), CookieEnable, JavascriptEnable, IsMobile, MobilePhone, + replaceAll(replaceAll(replaceAll(toValidUTF8(MobilePhoneModel), '\0', ''), '"', ''), '\\', ''), replaceAll(replaceAll(replaceAll(toValidUTF8(Params), '\0', ''), '"', ''), '\\', ''), IPNetworkID::Int32, TraficSourceID, SearchEngineID::Int16, replaceAll(replaceAll(replaceAll(toValidUTF8(SearchPhrase), '\0', ''), '"', ''), '\\', ''), + AdvEngineID, IsArtifical, WindowClientWidth::Int16, WindowClientHeight::Int16, ClientTimeZone, ClientEventTime, + SilverlightVersion1, SilverlightVersion2, SilverlightVersion3::Int32, SilverlightVersion4::Int16, replaceAll(replaceAll(replaceAll(toValidUTF8(PageCharset), '\0', ''), '"', ''), '\\', ''), + CodeVersion::Int32, IsLink, IsDownload, IsNotBounce, FUniqID::Int64, replaceAll(replaceAll(replaceAll(toValidUTF8(OriginalURL), '\0', ''), '"', ''), '\\', ''), HID::Int32, IsOldCounter, IsEvent, + IsParameter, DontCountHits, WithHash, replaceAll(replaceAll(replaceAll(toValidUTF8(HitColor::String), '\0', ''), '"', ''), '\\', ''), LocalEventTime, Age, Sex, Income, Interests::Int16, Robotness, RemoteIP::Int32, + WindowName, OpenerName, HistoryLength, replaceAll(replaceAll(replaceAll(toValidUTF8(BrowserLanguage::String), '\0', ''), '"', ''), '\\', ''), replaceAll(replaceAll(replaceAll(toValidUTF8(BrowserCountry::String), '\0', ''), '"', ''), '\\', ''), + replaceAll(replaceAll(replaceAll(toValidUTF8(SocialNetwork), '\0', ''), '"', ''), '\\', ''), replaceAll(replaceAll(replaceAll(toValidUTF8(SocialAction), '\0', ''), '"', ''), '\\', ''), + HTTPError, least(SendTiming, 30000), least(DNSTiming, 30000), least(ConnectTiming, 30000), least(ResponseStartTiming, 30000), + least(ResponseEndTiming, 30000), least(FetchTiming, 30000), SocialSourceNetworkID, + replaceAll(replaceAll(replaceAll(toValidUTF8(SocialSourcePage), '\0', ''), '"', ''), '\\', ''), ParamPrice, replaceAll(replaceAll(replaceAll(toValidUTF8(ParamOrderID), '\0', ''), '"', ''), '\\', ''), replaceAll(replaceAll(replaceAll(toValidUTF8(ParamCurrency::String), '\0', ''), '"', ''), '\\', ''), + ParamCurrencyID::Int16, OpenstatServiceName, OpenstatCampaignID, OpenstatAdID, OpenstatSourceID, + UTMSource, UTMMedium, UTMCampaign, UTMContent, UTMTerm, FromTag, HasGCLID, RefererHash::Int64, URLHash::Int64, CLID::Int32 +FROM hits_100m_obfuscated +INTO OUTFILE 'dump.tsv' +FORMAT TSV +``` + +Insert data into PostgreSQL: + +``` +\copy hits_100m_pg FROM 'dump.tsv'; +``` diff --git a/benchmark/postgresql/log b/benchmark/postgresql/log new file mode 100644 index 00000000000..6a95561e6da --- /dev/null +++ b/benchmark/postgresql/log @@ -0,0 +1,129 @@ +Time: 122020.258 ms (02:02.020) +Time: 5060.281 ms (00:05.060) +Time: 5052.692 ms (00:05.053) +Time: 129594.172 ms (02:09.594) +Time: 8079.623 ms (00:08.080) +Time: 7866.964 ms (00:07.867) +Time: 129584.717 ms (02:09.585) +Time: 8276.161 ms (00:08.276) +Time: 8153.295 ms (00:08.153) +Time: 123707.890 ms (02:03.708) +Time: 6835.297 ms (00:06.835) +Time: 6607.039 ms (00:06.607) +Time: 166640.676 ms (02:46.641) +Time: 75401.239 ms (01:15.401) +Time: 73526.027 ms (01:13.526) +Time: 272715.750 ms (04:32.716) +Time: 182721.613 ms (03:02.722) +Time: 182880.525 ms (03:02.881) +Time: 127108.191 ms (02:07.108) +Time: 6542.913 ms (00:06.543) +Time: 6339.887 ms (00:06.340) +Time: 127339.314 ms (02:07.339) +Time: 8376.381 ms (00:08.376) +Time: 7831.872 ms (00:07.832) +Time: 179176.439 ms (02:59.176) +Time: 58559.297 ms (00:58.559) +Time: 58139.265 ms (00:58.139) +Time: 182019.101 ms (03:02.019) +Time: 58435.027 ms (00:58.435) +Time: 58130.994 ms (00:58.131) +Time: 132449.502 ms (02:12.450) +Time: 11203.104 ms (00:11.203) +Time: 11048.435 ms (00:11.048) +Time: 128445.641 ms (02:08.446) +Time: 11602.145 ms (00:11.602) +Time: 11418.356 ms (00:11.418) +Time: 162831.387 ms (02:42.831) +Time: 41510.710 ms (00:41.511) +Time: 41682.899 ms (00:41.683) +Time: 171898.965 ms (02:51.899) +Time: 47379.274 ms (00:47.379) +Time: 47429.908 ms (00:47.430) +Time: 161607.811 ms (02:41.608) +Time: 41674.409 ms (00:41.674) +Time: 40854.340 ms (00:40.854) +Time: 175247.929 ms (02:55.248) +Time: 46721.776 ms (00:46.722) +Time: 46507.631 ms (00:46.508) +Time: 335961.271 ms (05:35.961) +Time: 248535.866 ms (04:08.536) +Time: 247383.678 ms (04:07.384) +Time: 132852.983 ms (02:12.853) +Time: 14939.304 ms (00:14.939) +Time: 14607.525 ms (00:14.608) +Time: 243461.844 ms (04:03.462) +Time: 157307.904 ms (02:37.308) +Time: 155093.101 ms (02:35.093) +Time: 122090.761 ms (02:02.091) +Time: 6411.266 ms (00:06.411) +Time: 6308.178 ms (00:06.308) +Time: 126584.819 ms (02:06.585) +Time: 8836.471 ms (00:08.836) +Time: 8532.176 ms (00:08.532) +Time: 125225.097 ms (02:05.225) +Time: 10236.910 ms (00:10.237) +Time: 9849.757 ms (00:09.850) +Time: 139140.064 ms (02:19.140) +Time: 21797.859 ms (00:21.798) +Time: 21559.214 ms (00:21.559) +Time: 124757.485 ms (02:04.757) +Time: 8728.403 ms (00:08.728) +Time: 8714.130 ms (00:08.714) +Time: 120687.258 ms (02:00.687) +Time: 8366.245 ms (00:08.366) +Time: 8146.856 ms (00:08.147) +Time: 122327.148 ms (02:02.327) +Time: 8698.359 ms (00:08.698) +Time: 8480.807 ms (00:08.481) +Time: 123958.614 ms (02:03.959) +Time: 8595.931 ms (00:08.596) +Time: 8241.773 ms (00:08.242) +Time: 128982.905 ms (02:08.983) +Time: 11252.783 ms (00:11.253) +Time: 10957.931 ms (00:10.958) +Time: 208455.385 ms (03:28.455) +Time: 102530.897 ms (01:42.531) +Time: 102049.298 ms (01:42.049) +Time: 131268.420 ms (02:11.268) +Time: 21094.466 ms (00:21.094) +Time: 20934.610 ms (00:20.935) +Time: 164084.134 ms (02:44.084) +Time: 77418.547 ms (01:17.419) +Time: 75422.290 ms (01:15.422) +Time: 174800.022 ms (02:54.800) +Time: 87859.594 ms (01:27.860) +Time: 85733.954 ms (01:25.734) +Time: 419357.463 ms (06:59.357) +Time: 339047.269 ms (05:39.047) +Time: 334808.230 ms (05:34.808) +Time: 475011.901 ms (07:55.012) +Time: 344406.246 ms (05:44.406) +Time: 347197.731 ms (05:47.198) +Time: 464657.732 ms (07:44.658) +Time: 332084.079 ms (05:32.084) +Time: 330921.322 ms (05:30.921) +Time: 152490.615 ms (02:32.491) +Time: 30954.343 ms (00:30.954) +Time: 31379.062 ms (00:31.379) +Time: 128539.127 ms (02:08.539) +Time: 12802.672 ms (00:12.803) +Time: 12494.088 ms (00:12.494) +Time: 125850.120 ms (02:05.850) +Time: 10318.773 ms (00:10.319) +Time: 9953.030 ms (00:09.953) +Time: 126602.092 ms (02:06.602) +Time: 8935.571 ms (00:08.936) +Time: 8711.184 ms (00:08.711) +Time: 133222.456 ms (02:13.222) +Time: 11848.869 ms (00:11.849) +Time: 11752.640 ms (00:11.753) +Time: 126950.067 ms (02:06.950) +Time: 11260.892 ms (00:11.261) +Time: 10943.649 ms (00:10.944) +Time: 128451.171 ms (02:08.451) +Time: 10984.980 ms (00:10.985) +Time: 10770.609 ms (00:10.771) +Time: 124621.000 ms (02:04.621) +Time: 8885.466 ms (00:08.885) +Time: 8857.296 ms (00:08.857) diff --git a/benchmark/postgresql/queries.sql b/benchmark/postgresql/queries.sql new file mode 100644 index 00000000000..d7a2fe2d8bf --- /dev/null +++ b/benchmark/postgresql/queries.sql @@ -0,0 +1,43 @@ +SELECT count(*) FROM {table}; +SELECT count(*) FROM {table} WHERE AdvEngineID != 0; +SELECT sum(AdvEngineID), count(*), avg(ResolutionWidth) FROM {table}; +SELECT sum(UserID) FROM {table}; +SELECT COUNT(DISTINCT UserID) FROM {table}; +SELECT COUNT(DISTINCT SearchPhrase) FROM {table}; +SELECT min(EventDate), max(EventDate) FROM {table}; +SELECT AdvEngineID, count(*) FROM {table} WHERE AdvEngineID != 0 GROUP BY AdvEngineID ORDER BY count(*) DESC; +SELECT RegionID, COUNT(DISTINCT UserID) AS u FROM {table} GROUP BY RegionID ORDER BY u DESC LIMIT 10; +SELECT RegionID, sum(AdvEngineID), count(*) AS c, avg(ResolutionWidth), COUNT(DISTINCT UserID) FROM {table} GROUP BY RegionID ORDER BY c DESC LIMIT 10; +SELECT MobilePhoneModel, COUNT(DISTINCT UserID) AS u FROM {table} WHERE MobilePhoneModel != '' GROUP BY MobilePhoneModel ORDER BY u DESC LIMIT 10; +SELECT MobilePhone, MobilePhoneModel, COUNT(DISTINCT UserID) AS u FROM {table} WHERE MobilePhoneModel != '' GROUP BY MobilePhone, MobilePhoneModel ORDER BY u DESC LIMIT 10; +SELECT SearchPhrase, count(*) AS c FROM {table} WHERE SearchPhrase != '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10; +SELECT SearchPhrase, COUNT(DISTINCT UserID) AS u FROM {table} WHERE SearchPhrase != '' GROUP BY SearchPhrase ORDER BY u DESC LIMIT 10; +SELECT SearchEngineID, SearchPhrase, count(*) AS c FROM {table} WHERE SearchPhrase != '' GROUP BY SearchEngineID, SearchPhrase ORDER BY c DESC LIMIT 10; +SELECT UserID, count(*) FROM {table} GROUP BY UserID ORDER BY count(*) DESC LIMIT 10; +SELECT UserID, SearchPhrase, count(*) FROM {table} GROUP BY UserID, SearchPhrase ORDER BY count(*) DESC LIMIT 10; +SELECT UserID, SearchPhrase, count(*) FROM {table} GROUP BY UserID, SearchPhrase LIMIT 10; +SELECT UserID, extract(minute FROM EventTime) AS m, SearchPhrase, count(*) FROM {table} GROUP BY UserID, m, SearchPhrase ORDER BY count(*) DESC LIMIT 10; +SELECT UserID FROM {table} WHERE UserID = -6101065172474983726; +SELECT count(*) FROM {table} WHERE URL LIKE '%metrika%'; +SELECT SearchPhrase, min(URL), count(*) AS c FROM {table} WHERE URL LIKE '%metrika%' AND SearchPhrase != '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10; +SELECT SearchPhrase, min(URL), min(Title), count(*) AS c, COUNT(DISTINCT UserID) FROM {table} WHERE Title LIKE '%Яндекс%' AND URL NOT LIKE '%.yandex.%' AND SearchPhrase != '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10; +SELECT * FROM {table} WHERE URL LIKE '%metrika%' ORDER BY EventTime LIMIT 10; +SELECT SearchPhrase FROM {table} WHERE SearchPhrase != '' ORDER BY EventTime LIMIT 10; +SELECT SearchPhrase FROM {table} WHERE SearchPhrase != '' ORDER BY SearchPhrase LIMIT 10; +SELECT SearchPhrase FROM {table} WHERE SearchPhrase != '' ORDER BY EventTime, SearchPhrase LIMIT 10; +SELECT CounterID, avg(length(URL)) AS l, count(*) AS c FROM {table} WHERE URL != '' GROUP BY CounterID HAVING count(*) > 100000 ORDER BY l DESC LIMIT 25; +SELECT REGEXP_REPLACE(Referer, '^https?://(?:www\.)?([^/]+)/.*$', '\1') AS key, avg(length(Referer)) AS l, count(*) AS c, min(Referer) FROM {table} WHERE Referer != '' GROUP BY key HAVING count(*) > 100000 ORDER BY l DESC LIMIT 25; +SELECT sum(ResolutionWidth), sum(ResolutionWidth + 1), sum(ResolutionWidth + 2), sum(ResolutionWidth + 3), sum(ResolutionWidth + 4), sum(ResolutionWidth + 5), sum(ResolutionWidth + 6), sum(ResolutionWidth + 7), sum(ResolutionWidth + 8), sum(ResolutionWidth + 9), sum(ResolutionWidth + 10), sum(ResolutionWidth + 11), sum(ResolutionWidth + 12), sum(ResolutionWidth + 13), sum(ResolutionWidth + 14), sum(ResolutionWidth + 15), sum(ResolutionWidth + 16), sum(ResolutionWidth + 17), sum(ResolutionWidth + 18), sum(ResolutionWidth + 19), sum(ResolutionWidth + 20), sum(ResolutionWidth + 21), sum(ResolutionWidth + 22), sum(ResolutionWidth + 23), sum(ResolutionWidth + 24), sum(ResolutionWidth + 25), sum(ResolutionWidth + 26), sum(ResolutionWidth + 27), sum(ResolutionWidth + 28), sum(ResolutionWidth + 29), sum(ResolutionWidth + 30), sum(ResolutionWidth + 31), sum(ResolutionWidth + 32), sum(ResolutionWidth + 33), sum(ResolutionWidth + 34), sum(ResolutionWidth + 35), sum(ResolutionWidth + 36), sum(ResolutionWidth + 37), sum(ResolutionWidth + 38), sum(ResolutionWidth + 39), sum(ResolutionWidth + 40), sum(ResolutionWidth + 41), sum(ResolutionWidth + 42), sum(ResolutionWidth + 43), sum(ResolutionWidth + 44), sum(ResolutionWidth + 45), sum(ResolutionWidth + 46), sum(ResolutionWidth + 47), sum(ResolutionWidth + 48), sum(ResolutionWidth + 49), sum(ResolutionWidth + 50), sum(ResolutionWidth + 51), sum(ResolutionWidth + 52), sum(ResolutionWidth + 53), sum(ResolutionWidth + 54), sum(ResolutionWidth + 55), sum(ResolutionWidth + 56), sum(ResolutionWidth + 57), sum(ResolutionWidth + 58), sum(ResolutionWidth + 59), sum(ResolutionWidth + 60), sum(ResolutionWidth + 61), sum(ResolutionWidth + 62), sum(ResolutionWidth + 63), sum(ResolutionWidth + 64), sum(ResolutionWidth + 65), sum(ResolutionWidth + 66), sum(ResolutionWidth + 67), sum(ResolutionWidth + 68), sum(ResolutionWidth + 69), sum(ResolutionWidth + 70), sum(ResolutionWidth + 71), sum(ResolutionWidth + 72), sum(ResolutionWidth + 73), sum(ResolutionWidth + 74), sum(ResolutionWidth + 75), sum(ResolutionWidth + 76), sum(ResolutionWidth + 77), sum(ResolutionWidth + 78), sum(ResolutionWidth + 79), sum(ResolutionWidth + 80), sum(ResolutionWidth + 81), sum(ResolutionWidth + 82), sum(ResolutionWidth + 83), sum(ResolutionWidth + 84), sum(ResolutionWidth + 85), sum(ResolutionWidth + 86), sum(ResolutionWidth + 87), sum(ResolutionWidth + 88), sum(ResolutionWidth + 89) FROM {table}; +SELECT SearchEngineID, ClientIP, count(*) AS c, sum("refresh"), avg(ResolutionWidth) FROM {table} WHERE SearchPhrase != '' GROUP BY SearchEngineID, ClientIP ORDER BY c DESC LIMIT 10; +SELECT WatchID, ClientIP, count(*) AS c, sum("refresh"), avg(ResolutionWidth) FROM {table} WHERE SearchPhrase != '' GROUP BY WatchID, ClientIP ORDER BY c DESC LIMIT 10; +SELECT WatchID, ClientIP, count(*) AS c, sum("refresh"), avg(ResolutionWidth) FROM {table} GROUP BY WatchID, ClientIP ORDER BY c DESC LIMIT 10; +SELECT URL, count(*) AS c FROM {table} GROUP BY URL ORDER BY c DESC LIMIT 10; +SELECT 1, URL, count(*) AS c FROM {table} GROUP BY 1, URL ORDER BY c DESC LIMIT 10; +SELECT ClientIP, ClientIP - 1, ClientIP - 2, ClientIP - 3, count(*) AS c FROM {table} GROUP BY ClientIP, ClientIP - 1, ClientIP - 2, ClientIP - 3 ORDER BY c DESC LIMIT 10; +SELECT URL, count(*) AS PageViews FROM {table} WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND DontCountHits = 0 AND "refresh" = 0 AND URL != '' GROUP BY URL ORDER BY PageViews DESC LIMIT 10; +SELECT Title, count(*) AS PageViews FROM {table} WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND DontCountHits = 0 AND "refresh" = 0 AND Title != '' GROUP BY Title ORDER BY PageViews DESC LIMIT 10; +SELECT URL, count(*) AS PageViews FROM {table} WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND "refresh" = 0 AND IsLink != 0 AND IsDownload = 0 GROUP BY URL ORDER BY PageViews DESC LIMIT 1000; +SELECT TraficSourceID, SearchEngineID, AdvEngineID, CASE WHEN (SearchEngineID = 0 AND AdvEngineID = 0) THEN Referer ELSE '' END AS Src, URL AS Dst, count(*) AS PageViews FROM {table} WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND "refresh" = 0 GROUP BY TraficSourceID, SearchEngineID, AdvEngineID, Src, Dst ORDER BY PageViews DESC LIMIT 1000; +SELECT URLHash, EventDate, count(*) AS PageViews FROM {table} WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND "refresh" = 0 AND TraficSourceID IN (-1, 6) AND RefererHash = 686716256552154761 GROUP BY URLHash, EventDate ORDER BY PageViews DESC LIMIT 100; +SELECT WindowClientWidth, WindowClientHeight, count(*) AS PageViews FROM {table} WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND "refresh" = 0 AND DontCountHits = 0 AND URLHash = 686716256552154761 GROUP BY WindowClientWidth, WindowClientHeight ORDER BY PageViews DESC LIMIT 10000; +SELECT DATE_TRUNC('minute', EventTime) AS "Minute", count(*) AS PageViews FROM {table} WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-02' AND "refresh" = 0 AND DontCountHits = 0 GROUP BY DATE_TRUNC('minute', EventTime) ORDER BY DATE_TRUNC('minute', EventTime); diff --git a/website/benchmark/dbms/results/015_postgresql.json b/website/benchmark/dbms/results/015_postgresql.json new file mode 100644 index 00000000000..0298d9a54db --- /dev/null +++ b/website/benchmark/dbms/results/015_postgresql.json @@ -0,0 +1,56 @@ +[ + { + "system": "PostgreSQL", + "version": "13", + "data_size": 100000000, + "time": "2021-10-31", + "comments": "", + "result": + [ +[122.02, 5.06, 5.052], +[129.594, 8.079, 7.866], +[129.584, 8.276, 8.153], +[123.707, 6.835, 6.607], +[166.64, 75.401, 73.526], +[272.715, 182.721, 182.88], +[127.108, 6.542, 6.339], +[127.339, 8.376, 7.831], +[179.176, 58.559, 58.139], +[182.019, 58.435, 58.13], +[132.449, 11.203, 11.048], +[128.445, 11.602, 11.418], +[162.831, 41.51, 41.682], +[171.898, 47.379, 47.429], +[161.607, 41.674, 40.854], +[175.247, 46.721, 46.507], +[335.961, 248.535, 247.383], +[132.852, 14.939, 14.607], +[243.461, 157.307, 155.093], +[122.09, 6.411, 6.308], +[126.584, 8.836, 8.532], +[125.225, 10.236, 9.849], +[139.14, 21.797, 21.559], +[124.757, 8.728, 8.714], +[120.687, 8.366, 8.146], +[122.327, 8.698, 8.48], +[123.958, 8.595, 8.241], +[128.982, 11.252, 10.957], +[208.455, 102.53, 102.049], +[131.268, 21.094, 20.934], +[164.084, 77.418, 75.422], +[174.8, 87.859, 85.733], +[419.357, 339.047, 334.808], +[475.011, 344.406, 347.197], +[464.657, 332.084, 330.921], +[152.49, 30.954, 31.379], +[128.539, 12.802, 12.494], +[125.85, 10.318, 9.953], +[126.602, 8.935, 8.711], +[133.222, 11.848, 11.752], +[126.95, 11.26, 10.943], +[128.451, 10.984, 10.77], +[124.621, 8.885, 8.857] + ] + } +] +