PostgreSQL PG14 משפר רישום דרך libpq

עדכון: 2 ביולי 2023

PostgreSQL 14 משפר רישום עם libpq

הפונקציה libpq שופרה ב-PG14 כדי לעקוב אחר הזמינות של תקשורת שרת יישומים/לקוח. זה מוסיף אפשרויות חדשות לשלוט בפורמט הפלט.

רקע

libpq היא אחת מספריות הלקוח, משתמשים יכולים להפעיל את פונקציית PQtrace כדי להקליט את התקשורת בין לקוח לשרת. תקשורת זו היא מעין מידע פרוטוקול המשמש את PG, לרבות: מזהה סוג ההודעה, אורך ההודעה ותוכן ההודעה של מידע ההחלפה.

מפתחי יישומים יכולים להשתמש ביומן זה כדי לקבוע אם התקשורת פועלת כמצופה. השתמש במשפט הבא כדוגמה:

CREATE TABLESPACE regress_tblspacewith

מיקום '/בית/postgres/src/בדיקה/רגרסה/שטח שולחן בדיקה'

עם עלות (אקראית_עמוד_= 3.0);

האפליקציה הקוראת ל-PQtrace ב-PG13 תוציא את סוגי היומנים הבאים לקובץ שצוין:

יומנים שנוצרו על ידי libpq ב-PG13

יש לציין שפלט היומן של PQtrace של גרסת ה-PG הנוכחית אינו מכיל חותמת זמן, כך שלא ניתן להשתמש בו כהפניה לניתוח שאילתות איטיות. בנוסף, מכיוון שמזהה ההודעה, אורך הודעת השרת/לקוח ותוכן הפלט נמצאים בשורה נפרדת, האמינות נמוכה יחסית, וניתוח הודעות הפרוטוקול קשה יותר. Z ו-C המסומנים 1 הם המזהים של הודעת הפרוטוקול. כדי להבין את המשמעות של כל מזהה, עיין בסעיף פורמטי הודעה במדריך

סקירה כללית של שיפורים בתכונות

ב-PG14, פונקציית PQtrace שופרה כדי להפוך את יומן הפלט לקריאה יותר ולכלול חותמת זמן. פונקציה חדשה PQsetTraceFlags נוספה כדי לשלוט בפלט של חותמת הזמן.

שפר את פלט היומן

פונקציית המעקב המשופרת ב-PG14 מייצרת פלט דומה לזה:

יומנים שנוצרו על ידי libpq ב-PG 14

1) מכיל חותמת זמן

2) הקוד של כיוון ההודעה אינטואיטיבי יותר: F פירושו קצה קדמי, B פירושו קצה אחורי

3) פלט את שם ההודעה הרשמי במקום המזהה של הודעת הפרוטוקול

4) הודעות פרוטוקול משמעותיות יוצאות בשורה אחת

שיטת אחזור יומן

כמו קודם, התחל לבצע רישום על ידי קריאה לפונקציית PQtrace של libpq. אם אינך צריך להפיק את חותמת הזמן, תוכל לשלוט בה דרך הפונקציה PQsetTraceFlags.

להשפיע

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

עתיד

יומן ה-libpq של PG14 יכיל חותמות זמן וטקסט קריא יותר. בגרסאות הבאות, נשפר עוד יותר את השימושיות בהיבטים הבאים:

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

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

  קישורים:

lq9p16e

nl8060bc3117e