أكثر استعلامات BigQuery تكراراً
الاستعلامات المتكررة هي مضاعف تكاليف خفي في BigQuery. يجمّع هذا الاستعلام نصوص الاستعلامات المتطابقة ويحسب عدد مرات تنفيذ كل منها، إلى جانب التكلفة التراكمية لجميع تلك التنفيذات.
لماذا يهم هذا
استعلام يكلّف 0.10 دولار لكل تنفيذ لكنه يُشغَّل 10,000 مرة شهرياً يكلّف 1,000 دولار. كثيراً ما يكشف تحليل التكرار عن استعلامات منخفضة التكلفة تتراكم لتُشكّل إنفاقاً كبيراً بسبب التكرار المجرّد. هذه مرشحة رئيسية للتخزين المؤقت أو التحقيق المجدول أو تسريع BI Engine.
كيف يعمل
يجمّع الاستعلام كل نص استعلام فريد ثم يحسب التكرارات ويجمع total_bytes_billed لكل مجموعة. تُظهر النتيجة كل استعلام فريد مع عدد تنفيذاته وتكلفته عند الطلب التراكمية.
استعلام SQL
Fill in your details to get a ready-to-run query:
-- Find the most frequently repeated queries and their cumulative cost
DECLARE lookback_days INT64 DEFAULT 14;
WITH jobs AS (
SELECT
query,
COALESCE(total_bytes_billed, 0) AS bytes_billed,
ROW_NUMBER() OVER (PARTITION BY job_id ORDER BY end_time DESC) AS rn
FROM `your-project`.`region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
WHERE creation_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL lookback_days DAY)
AND job_type = 'QUERY' AND state = 'DONE' AND total_slot_ms IS NOT NULL
),
deduplicated AS (
SELECT query, bytes_billed FROM jobs WHERE rn = 1
),
grouped AS (
SELECT
query,
COUNT(*) AS exec_count,
SUM(bytes_billed) AS total_bytes
FROM deduplicated
GROUP BY query
)
SELECT
query,
exec_count,
ROUND(total_bytes / POW(1024, 3), 2) AS total_gib_scanned,
ROUND(total_bytes / POW(1024, 4) * 6.25, 2) AS cumulative_cost_usd
FROM grouped
...شرح الاستعلام
تُزال التكرارات من المهام أولاً بـ job_id، ثم تُجمَّع حسب نص الاستعلام. يعطي العدد تكرار التنفيذ وجمع البايتات المفوترة يعطي التكلفة التراكمية. يكشف هذا النهج بفعالية الاستعلامات التي تُشغَّل مراراً على نطاق واسع.
رؤى أساسية
الاستعلامات التي تُشغَّل >100 مرة يومياً هي بالتأكيد آلية — تحقق مما إذا كان بإمكانها استخدام نتائج مخزّنة مؤقتاً.
يخزّن BigQuery النتائج مؤقتاً بشكل افتراضي لمدة 24 ساعة، لكن فقط للاستعلامات المتطابقة ذات النتائج الحتمية.
الاستعلامات التي تحتوي على CURRENT_TIMESTAMP() أو NOW() تتجاوز ذاكرة التخزين المؤقت — فكّر في استخدام اقتطاع التاريخ بدلاً منها.
الاستعلامات عالية التكرار التي تمسح الجداول ذاتها قد تستفيد من طرق العرض المادية أو BI Engine.
أفضل الممارسات
- 1
مكّن تخزين نتائج BigQuery مؤقتاً وتجنّب الأنماط التي تبطله (CURRENT_TIMESTAMP وRAND وغيرها).
- 2
أنشئ طرق عرض مادية لأعلى 5 استعلامات تحليلية يُنفَّذ بها بشكل متكرر.
- 3
ادمج الاستعلامات المكررة من لوحات تحكّم أو خدمات مختلفة في استعلام مجدول واحد.
- 4
استخدم BI Engine للاستعلامات الأقل من ثانية التي تزوّد لوحات التحكّم التفاعلية.
هل تريد من CloudClerk إيجاد هذه الوفورات تلقائياً؟
تتصل منصتنا بمشروع BigQuery الخاص بك وتُشغّل هذه التحليلات تلقائياً وتقدّم توصيات التحسين المدعومة بالذكاء الاصطناعي — مع إخفاء هوية بياناتك بالكامل.
أدلة ذات صلة
أعلى استعلامات BigQuery تكلفةً
ابحث عن أغلى استعلامات BigQuery من حيث التكلفة عند الطلب. رتّب الاستعلامات حسب إجمالي البايتات المفوترة لتحديد أكبر محرّكات التكاليف.
اقرأ الدليلأكثر استعلامات BigQuery تعقيداً
ابحث عن أكثر استعلامات BigQuery كثافةً حسابياً مرتّبةً حسب استخدام الفتحات. حدّد الاستعلامات التي تستهلك موارد حسابية غير متناسبة.
اقرأ الدليلأطول استعلامات BigQuery مدةً
ابحث عن أطول استعلامات BigQuery وقت تشغيل. حدّد الاستعلامات البطيئة التي تحجب الموارد وتؤثر على تجربة المستخدم.
اقرأ الدليلتحليل تكاليف BigQuery حسب الاستعلام
حلّل تكلفة كل استعلام فردي واستخدام الفتحات ووقت التنفيذ. احصل على تفصيل مفصّل للتكلفة عند الطلب لكل تنفيذ استعلام.
اقرأ الدليل