عند مواجهة مشكلات في الذاكرة أو حدوث تسرّب للذاكرة، يفيدك معرفة أي الاستعلامات والموارد تستهلك قدرًا كبيرًا من الذاكرة. ستجد أدناه استعلامات يمكن أن تساعدك على استكشاف مشكلات الذاكرة وإصلاحها، وذلك بتحديد الاستعلامات وقواعد البيانات والجداول التي يمكن تحسينها:
اعرض العمليات الجارية حاليًا حسب ذروة استخدام الذاكرة
SELECT
initial_query_id,
query,
elapsed,
formatReadableSize(memory_usage),
formatReadableSize(peak_memory_usage),
FROM system.processes
ORDER BY peak_memory_usage DESC
LIMIT 100;عرض مقاييس استخدام الذاكرة
SELECT
metric, description, formatReadableSize(value) size
FROM
system.asynchronous_metrics
WHERE
metric LIKE '%Cach%'
OR metric LIKE '%Mem%'
ORDER BY
value DESC;اعرض الجداول حسب استخدام الذاكرة الحالي
SELECT
database,
name,
formatReadableSize(total_bytes)
FROM system.tables
WHERE engine IN ('Memory','Set','Join');عرض إجمالي الذاكرة المستخدمة بواسطة عمليات الدمج
SELECT formatReadableSize(sum(memory_usage)) FROM system.merges;عرض إجمالي الذاكرة المستخدمة للعمليات الجارية حاليًا
SELECT formatReadableSize(sum(memory_usage)) FROM system.processes;عرض إجمالي الذاكرة المستخدمة بواسطة القواميس
SELECT formatReadableSize(sum(bytes_allocated)) FROM system.dictionaries;عرض إجمالي الذاكرة التي تستخدمها المفاتيح الأساسية ودقة الفهرس
SELECT
sumIf(data_uncompressed_bytes, part_type = 'InMemory') AS memory_parts,
formatReadableSize(sum(primary_key_bytes_in_memory)) AS primary_key_bytes_in_memory,
formatReadableSize(sum(primary_key_bytes_in_memory_allocated)) AS primary_key_bytes_in_memory_allocated,
formatReadableSize(sum(index_granularity_bytes_in_memory)) AS index_granularity_bytes_in_memory,
formatReadableSize(sum(index_granularity_bytes_in_memory_allocated)) AS index_granularity_bytes_in_memory_allocated
FROM system.parts;