נתונים סטטיסטיים על גדלי טבלאות

‫Spanner מספק את הטבלאות המובנות הבאות:

  • SPANNER_SYS.TABLE_SIZES_STATS_1HOUR: רשימה של הגדלים של הטבלאות והאינדקסים במסדי הנתונים.
  • SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR: רשימת הגדלים של הטבלאות והאינדקסים במסדי הנתונים שלכם לכל קבוצת מיקומים.

גודל הטבלה בבייטים. גודלי הטבלאות כוללים גרסאות של נתונים. אתם יכולים להשתמש בטבלאות המובנות האלה כדי לעקוב אחרי הגדלים של הטבלה והאינדקס לאורך זמן. אפשר גם לעקוב אחרי הגדלים של האינדקסים כשיוצרים, מוחקים ומשנים אותם (כשמוסיפים עוד שורות לאינדקס או כשמוסיפים לו עמודות חדשות). בנוסף, אפשר גם לבדוק את הגדלים של טבלאות נתוני השינויים.

אפשר לעקוב אחרי נפח האחסון של מסד הנתונים באמצעות מדד נפח האחסון הכולל של מסד הנתונים. אפשר לראות את פירוט האחסון במסד הנתונים עם SPANNER_SYS.TABLE_SIZES_STATS_1HOUR ועם SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR.

גישה לסטטיסטיקות של גדלי הטבלאות

‫Spanner מספק את הנתונים הסטטיסטיים של גדלי הטבלאות בסכימה SPANNER_SYS. אפשר לגשת לנתוני SPANNER_SYS בדרכים הבאות:

  • דף Spanner Studio של מסד נתונים במסוף Google Cloud .

  • הפקודה gcloud spanner databases execute-sql.

  • השיטה executeSql או השיטה executeStreamingSql.

השיטות הבאות לקריאה יחידה ש-Spanner מספק לא תומכות ב-SPANNER_SYS:

  • ביצוע קריאה חזקה משורה אחת או מכמה שורות בטבלה.
  • ביצוע קריאה בעבר משורה אחת או מכמה שורות בטבלה.
  • קריאה משורה אחת או מכמה שורות באינדקס משני.

TABLE_SIZES_STATS_1HOUR

SPANNER_SYS.TABLE_SIZES_STATS_1HOUR מכילה את הגדלים של כל הטבלאות במסד הנתונים, ממוינות לפי interval_end. המרווחים מבוססים על שעות עגולות. מבחינה פנימית, כל 5 דקות, Spanner אוסף נתונים מכל השרתים ואז הנתונים זמינים בטבלה TABLE_SIZES_STATS_1HOUR זמן קצר לאחר מכן. לאחר מכן, הנתונים מחושבים כממוצע לכל שעה. לדוגמה, בשעה 11:59:30, TABLE_SIZES_STATS_1HOUR יוצגו גדלי הטבלאות הממוצעים מהמרווח שבין 10:00:00 ל-10:59:59.

סכמת טבלאות

שם העמודה סוג תיאור
INTERVAL_END TIMESTAMP סוף מרווח הזמן שבו נאספו גדלי הטבלאות.
TABLE_NAME STRING שם הטבלה או האינדקס.
USED_BYTES FLOAT64 גודל הטבלה בבייטים.
USED_SSD_BYTES FLOAT64 נפח האחסון ב-SSD שמשמש את הטבלה, בבייטים.
USED_HDD_BYTES FLOAT64 נפח האחסון ב-HDD שמשמש את הטבלה, בבייטים.

שאילתות לדוגמה

בקטע הזה מופיעות כמה דוגמאות להצהרות SQL שמחלצות נתונים סטטיסטיים של גדלי טבלאות מצטברים. אפשר להריץ את הצהרות ה-SQL האלה באמצעות ספריות הלקוח, gcloud spanner או מסוףGoogle Cloud .

שאילתה של 4 הטבלאות והאינדקסים הגדולים ביותר עבור המרווח האחרון

השאילתה הבאה מחזירה את 4 הטבלאות והאינדקסים הגדולים ביותר עבור המרווח האחרון:

    SELECT interval_end,
          table_name,
          used_bytes
    FROM spanner_sys.table_sizes_stats_1hour
    WHERE interval_end = (
          SELECT MAX(interval_end)
          FROM spanner_sys.table_sizes_stats_1hour)
    ORDER BY used_bytes DESC
    LIMIT 4;
  

פלט השאילתה
interval_end table_name used_bytes
2022-11-15 13:00:00-07:00 order_item 60495552
2022-11-15 13:00:00-07:00 orders 13350000
2022-11-15 13:00:00-07:00 item_inventory 2094549
2022-11-15 13:00:00-07:00 customer 870000

מגמת גודל השאילתה עבור טבלה או אינדקס ספציפיים ב-24 השעות האחרונות

השאילתה הבאה מחזירה את גודל הטבלה ב-24 השעות האחרונות:

GoogleSQL

SELECT interval_end, used_bytes
  FROM spanner_sys.table_sizes_stats_1hour
WHERE interval_end > TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL -24 HOUR)
  AND table_name = "table_name"
ORDER BY interval_end DESC;

כאשר:

  • table_name חייב להיות טבלה או אינדקס קיימים במסד הנתונים.

PostgreSQL

SELECT interval_end, used_bytes
  FROM spanner_sys.table_sizes_stats_1hour
WHERE interval_end > spanner.timestamptz_subtract(now(), '24 HOUR')
  AND table_name = 'table_name'
ORDER BY interval_end DESC;

כאשר:

  • table_name חייב להיות טבלה או אינדקס קיימים במסד הנתונים.
פלט השאילתה
interval_end used_bytes
2022-11-15 13:00:00-07:00 13350000
2022-11-15 12:00:00-07:00 13350000
2022-11-15 11:00:00-07:00 13350000
2022-11-15 10:00:00-07:00 13350000
2022-11-15 09:00:00-07:00 13350000
2022-11-15 08:00:00-07:00 12350000
2022-11-15 07:00:00-07:00 12350000
2022-11-15 06:00:00-07:00 12350000
2022-11-15 05:00:00-07:00 11350000
2022-11-15 04:00:00-07:00 11350000
2022-11-15 03:00:00-07:00 11350000
2022-11-15 02:00:00-07:00 11350000
2022-11-15 01:00:00-07:00 11350000
2022-11-15 00:00:00-07:00 10350000
2022-11-14 23:00:00-07:00 10350000
2022-11-14 22:00:00-07:00 10350000
2022-11-14 21:00:00-07:00 10350000
2022-11-14 20:00:00-07:00 10350000
2022-11-14 19:00:00-07:00 10350000
2022-11-14 18:00:00-07:00 10350000
2022-11-14 17:00:00-07:00 10350000
2022-11-14 16:00:00-07:00 10350000
2022-11-14 15:00:00-07:00 10350000
2022-11-14 14:00:00-07:00 10350000
2022-11-14 13:00:00-07:00 10350000

TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR

הקובץ SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR מכיל את הגדלים של כל הטבלאות במסד הנתונים, ממוינות לפי interval_end, לכל קבוצת מיקום. המרווחים מבוססים על שעות עגולות. באופן פנימי, כל 5 דקות, מערכת Spanner אוספת נתונים מכל השרתים ואז הנתונים האלה זמינים בטבלה TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOURזמן קצר לאחר מכן. לאחר מכן, הנתונים מחושבים כממוצע לכל שעה. לדוגמה, בשעה 11:59:30, ‏ TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR מציג את הגדלים הממוצעים של הטבלאות לכל קבוצת יישובים מהמרווח שבין 10:00:00 ל-10:59:59.

סכמת טבלאות

שם העמודה סוג תיאור
INTERVAL_END TIMESTAMP סוף מרווח הזמן שבו נאספו גדלי הטבלאות.
TABLE_NAME STRING שם הטבלה או האינדקס.
LOCALITY_GROUP STRING השם של קבוצת היישובים.
USED_BYTES FLOAT64 גודל הטבלה בבייטים.
USED_SSD_BYTES FLOAT64 נפח האחסון ב-SSD שמשמש את הטבלה, בבייטים.
USED_HDD_BYTES FLOAT64 נפח האחסון ב-HDD שמשמש את הטבלה, בבייטים.

שמירת נתונים

לפחות, Spanner שומר נתונים למשך SPANNER_SYS.TABLE_SIZES_STATS_1HOUR למרווחי זמן שכוללים את 30 הימים האחרונים.

המאמרים הבאים