Database Labdon
882 subscribers
37 photos
3 videos
1 file
899 links
🕸 Database Academy

حمایت مالی:
https://www.coffeete.ir/mrbardia72

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
memoize planner estimates in EXPLAIN.

🟢 خلاصه مقاله:
**
این مطلب که در شماره اخیر Golang Weekly معرفی شده، درباره memoize کردن برآوردهای planner در EXPLAIN است تا تحلیل پرس‌وجوها سریع‌تر و قابل‌اتکاتر شود. ایده اصلی این است که تخمین‌های میانی (مثل cardinality و هزینه‌ها) بر اساس نسخه نرمال‌شده‌ی بخش‌های پرس‌وجو و ورودی‌های اثرگذار (آمار جداول، وضعیت schema، و تنظیمات planner) ذخیره شوند و در اجرای‌های بعدی EXPLAIN دوباره استفاده شوند. نتیجه: کاهش هزینه محاسبات تکراری، ثبات بیشتر خروجی‌ها، و مقایسه آسان‌تر تغییرات.

در پیاده‌سازی با Go می‌توان با cacheهای سبک، هش‌کردن پرس‌وجوی نرمال‌شده و وضعیت کاتالوگ، و قلاب‌های ابطال (invalidation) قابل‌تنظیم به این هدف رسید؛ این رویکرد برای ابزارهای توسعه، CI و بنچمارک‌ها سودمند است. البته چالش‌ها هم مهم‌اند: کهنگی داده‌های cache با تغییر آمار یا تنظیمات، ضرورت سیاست‌های ابطال شفاف، ترجیحاً cache کردن فقط برآوردها (نه کل plan)، ارائه نشانگرهای hit/miss در خروجی EXPLAIN، و تعیین دامنه و سقف اندازه cache (مثلاً در سطح session).

به طور خلاصه، memoize کردن برآوردهای planner در EXPLAIN چرخه‌های تحلیل را تسریع و نتایج را پایدارتر می‌کند، به شرط آنکه مرزهای cache و سیاست‌های ابطال به‌خوبی مدیریت شوند.

#Golang #Go #EXPLAIN #Database #QueryPlanner #Memoization #Performance #Optimization

🟣لینک مقاله:
https://postgresweekly.com/link/175091/web


👑 @Database_Academy
🔵 عنوان مقاله
A SQL Query's Roadtrip Through Postgres

🟢 خلاصه مقاله:
این مطلب با الهام از توضیحات Jesús Espino و Umair Shahid نشان می‌دهد یک پرس‌وجوی SQL در Postgres چگونه از مرحله دریافت و parse، به plan‌نویسی و سپس اجرا می‌رسد. Postgres با اتکا به optimizer مسیرهای دسترسی مناسب را انتخاب می‌کند و هنگام اجرا، داده‌ها را از طریق buffer manager به حافظه می‌آورد و با MVCC دید سازگار هر تراکنش را تضمین می‌کند. در مسیر نوشتن، ابتدا تغییرات در WAL ثبت می‌شوند و صفحات به‌روزشده در حافظه به «dirty pages» تبدیل می‌گردند؛ یعنی نسخه درون‌حافظه‌ای با نسخه روی دیسک تفاوت دارد. سپس background writer و checkpointer به‌تدریج این صفحات را روی دیسک می‌نویسند تا پایداری داده و بازیابی سریع پس از خطا ممکن شود. تنظیماتی مثل shared_buffers و پارامترهای مربوط به checkpoint و WAL روی تأخیر، توان عملیاتی و الگوی I/O اثر مستقیم دارند. برای توسعه‌دهندگان، انتخاب شاخص‌های مناسب، شکل‌دهی درست پرس‌وجوها و پایش با ابزارهایی مانند pg_stat_bgwriter و pg_buffercache به درک فشار نوشتن، نسبت صفحات dirty و کارایی حافظه کمک می‌کند.

#Postgres #SQL #DatabaseInternals #WAL #DirtyPages #QueryPlanner #Checkpoints #Performance

🟣لینک مقاله:
https://postgresweekly.com/link/176686/web


👑 @Database_Academy