Skip to content

Commit f705ea0

Browse files
committed
some optimizations
1 parent 8f2533f commit f705ea0

1 file changed

Lines changed: 72 additions & 81 deletions

File tree

definitions/output/reports/tech_crux.js

Lines changed: 72 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -188,17 +188,17 @@ geo_summary AS (
188188
device IN ('desktop', 'phone')
189189
),
190190
191-
crux AS (
191+
base_crux AS (
192192
SELECT
193193
geo,
194-
CASE _rank
195-
WHEN 100000000 THEN 'ALL'
196-
WHEN 10000000 THEN 'Top 10M'
197-
WHEN 1000000 THEN 'Top 1M'
198-
WHEN 100000 THEN 'Top 100k'
199-
WHEN 10000 THEN 'Top 10k'
200-
WHEN 1000 THEN 'Top 1k'
201-
END AS rank,
194+
CASE
195+
WHEN rank <= 1000 THEN ['Top 1k', 'Top 10k', 'Top 100k', 'Top 1M', 'Top 10M', 'ALL']
196+
WHEN rank <= 10000 THEN ['Top 10k', 'Top 100k', 'Top 1M', 'Top 10M', 'ALL']
197+
WHEN rank <= 100000 THEN ['Top 100k', 'Top 1M', 'Top 10M', 'ALL']
198+
WHEN rank <= 1000000 THEN ['Top 1M', 'Top 10M', 'ALL']
199+
WHEN rank <= 10000000 THEN ['Top 10M', 'ALL']
200+
ELSE ['Unknown']
201+
END AS eligible_ranks,
202202
CONCAT(origin, '/') AS root_page,
203203
IF(device = 'desktop', 'desktop', 'mobile') AS client,
204204
@@ -225,9 +225,32 @@ crux AS (
225225
IS_GOOD(fast_ttfb, avg_ttfb, slow_ttfb) AS good_ttfb,
226226
IS_NON_ZERO(fast_inp, avg_inp, slow_inp) AS any_inp,
227227
IS_GOOD(fast_inp, avg_inp, slow_inp) AS good_inp
228-
FROM geo_summary,
229-
UNNEST([1000, 10000, 100000, 1000000, 10000000, 100000000]) AS _rank
230-
WHERE rank <= _rank
228+
FROM geo_summary
229+
),
230+
231+
crux AS (
232+
SELECT
233+
geo,
234+
rank,
235+
root_page,
236+
client,
237+
238+
any_fid,
239+
good_fid,
240+
any_cls,
241+
good_cls,
242+
any_lcp,
243+
good_lcp,
244+
good_cwv,
245+
246+
any_fcp,
247+
good_fcp,
248+
any_ttfb,
249+
good_ttfb,
250+
any_inp,
251+
good_inp
252+
FROM base_crux,
253+
UNNEST(eligible_ranks) AS rank
231254
),
232255
233256
technologies AS (
@@ -289,93 +312,40 @@ lab_data AS (
289312
),
290313
291314
audits AS (
292-
SELECT DISTINCT
315+
SELECT
316+
geo,
293317
client,
294-
root_page,
318+
rank,
295319
technology,
296320
version,
297-
audit_category,
298-
audit_id
321+
category,
322+
id,
323+
COUNT(DISTINCT root_page) AS origins
299324
FROM (
300325
SELECT DISTINCT
301326
client,
302327
page,
303328
root_page,
304-
audits.category AS audit_category,
305-
audits.id AS audit_id
329+
audits.category,
330+
audits.id
306331
FROM pages
307332
INNER JOIN UNNEST(get_passed_audits(pages.lighthouse)) AS audits
308333
) AS audits_data
309334
INNER JOIN technologies
310335
USING (client, page)
311-
),
312-
313-
origins_summary AS (
314-
SELECT
315-
geo,
316-
client,
317-
rank,
318-
technology,
319-
version,
320-
COUNT(DISTINCT root_page) AS origins
321-
FROM lab_data
322336
INNER JOIN crux
323337
USING (client, root_page)
324338
GROUP BY
325-
geo,
326-
client,
327-
rank,
328-
technology,
329-
version
330-
331-
),
332-
333-
334-
audits_summary AS (
335-
SELECT
336339
geo,
337340
client,
338341
rank,
339342
technology,
340343
version,
341-
ARRAY_AGG(STRUCT(
342-
audit_category AS category,
343-
audit_id AS id,
344-
SAFE_DIVIDE(audits.origins, origins_summary.origins) AS pass_rate
345-
)) AS audits
346-
FROM (
347-
SELECT
348-
geo,
349-
client,
350-
rank,
351-
technology,
352-
version,
353-
audit_category,
354-
audit_id,
355-
COUNT(DISTINCT root_page) AS origins
356-
FROM audits
357-
INNER JOIN crux
358-
USING (client, root_page)
359-
GROUP BY
360-
geo,
361-
client,
362-
rank,
363-
technology,
364-
version,
365-
audit_category,
366-
audit_id
367-
) AS audits
368-
LEFT JOIN origins_summary
369-
USING (geo, client, rank, technology, version)
370-
GROUP BY
371-
geo,
372-
client,
373-
rank,
374-
technology,
375-
version
344+
category,
345+
id
376346
),
377347
378-
other_summary AS (
348+
base_summary AS (
379349
SELECT
380350
geo,
381351
client,
@@ -412,8 +382,9 @@ other_summary AS (
412382
SAFE_CAST(APPROX_QUANTILES(bytesTotal, 1000)[OFFSET(500)] AS INT64) AS total,
413383
SAFE_CAST(APPROX_QUANTILES(bytesJS, 1000)[OFFSET(500)] AS INT64) AS js,
414384
SAFE_CAST(APPROX_QUANTILES(bytesImg, 1000)[OFFSET(500)] AS INT64) AS images
415-
) AS median_page_weight_bytes
385+
) AS median_page_weight_bytes,
416386
387+
COUNT(DISTINCT root_page) AS origins
417388
FROM lab_data
418389
INNER JOIN crux
419390
USING (client, root_page)
@@ -423,6 +394,29 @@ other_summary AS (
423394
rank,
424395
technology,
425396
version
397+
),
398+
399+
audits_summary AS (
400+
SELECT
401+
geo,
402+
client,
403+
rank,
404+
technology,
405+
version,
406+
ARRAY_AGG(STRUCT(
407+
category AS category,
408+
id AS id,
409+
SAFE_DIVIDE(audits.origins, base_summary.origins) AS pass_rate
410+
)) AS audits
411+
FROM audits
412+
LEFT JOIN base_summary
413+
USING (geo, client, rank, technology, version)
414+
GROUP BY
415+
geo,
416+
client,
417+
rank,
418+
technology,
419+
version
426420
)
427421
428422
SELECT
@@ -433,15 +427,12 @@ SELECT
433427
technology,
434428
version,
435429
436-
# Metrics
437430
origins,
438431
crux,
439432
median_lighthouse_score,
440433
median_page_weight_bytes,
441434
audits
442-
FROM origins_summary
443-
LEFT JOIN other_summary
444-
USING (geo, client, rank, technology, version)
435+
FROM base_summary
445436
LEFT JOIN audits_summary
446437
USING (geo, client, rank, technology, version)
447438
`)

0 commit comments

Comments
 (0)