Database Labdon
871 subscribers
35 photos
3 videos
1 file
879 links
🕸 Database Academy

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

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
How to Do UPDATE ... LIMIT

🟢 خلاصه مقاله:
در Postgres نمی‌توان مستقیم از UPDATE ... LIMIT یا DELETE ... LIMIT استفاده کرد؛ هرچند در برخی لهجه‌های SQL مثل MySQL این امکان وجود دارد. راه‌حل استاندارد این است که ابتدا در یک زیرکوئری یا CTE با ORDER BY و LIMIT، شناسهٔ ردیف‌های هدف را انتخاب کنید و سپس با UPDATE/DELETE روی همان شناسه‌ها عمل کنید. برای محیط‌های همزمان، استفاده از SELECT ... FOR UPDATE SKIP LOCKED در زیرکوئری باعث می‌شود هر پردازش فقط ردیف‌های قفل‌نشده را بردارد و تداخل رخ ندهد. حتماً ORDER BY بگذارید تا انتخاب N ردیف قابل پیش‌بینی باشد و برای کارایی، ایندکس مناسب روی فیلترها و مرتب‌سازی‌ها داشته باشید. در حجم‌های بزرگ، عملیات را به صورت batch تکراری انجام دهید تا از تراکنش‌های طولانی و فشار روی سیستم جلوگیری شود.

#Postgres #SQL #UPDATE #DELETE #LIMIT #CTE #SkipLocked #MySQL

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


👑 @Database_Academy
🔵 عنوان مقاله
date and timestamp versions of random(min, max)

🟢 خلاصه مقاله:
این مقاله به دو به‌روزرسانی کاربردی اشاره می‌کند: افزوده‌شدن نسخه‌های مبتنی‌بر نوع‌های date و timestamp برای تابع random(min, max) و نمایش برآوردهای برنامه‌ریز برای گره Memoize در خروجی EXPLAIN. با پشتیبانی جدید random(min, max)، می‌توان مقادیر تصادفی از نوع تاریخ یا زمان را مستقیماً در یک بازه مشخص تولید کرد؛ کاری مفید برای تولید داده‌ی آزمایشی، شبیه‌سازی بار کاری و ناشناس‌سازی داده‌های زمانی بدون نیاز به تبدیل‌های اضافی. همچنین، EXPLAIN اکنون برآوردهای مربوط به Memoize را نشان می‌دهد تا روشن‌تر شود چرا برنامه‌ریز از این گره استفاده کرده و تأثیر تخمینی کش و هزینه‌ها چیست؛ موضوعی که به عیب‌یابی و بهینه‌سازی پرس‌وجوها کمک می‌کند.

#Databases #SQL #EXPLAIN #Memoize #Random #Date #Timestamp #Performance

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


👑 @Database_Academy
👍1
🔵 عنوان مقاله
PostGIS Performance: pg_stat_statements and Postgres Tuning

🟢 خلاصه مقاله:
**این مقاله نشان می‌دهد چطور با استفاده از PostGIS روی Postgres می‌توان کارایی پرس‌وجوهای مکانی را بهبود داد. محور اصلی کار، اندازه‌گیری دقیق با pg_stat_statements برای شناسایی پرهزینه‌ترین پرس‌وجوها و سپس تحلیل آن‌ها با EXPLAIN/ANALYZE است. توصیه‌های کلیدی شامل انتخاب درست geometry یا geography، ساخت ایندکس‌های GiST/SP-GiST، نوشتن شرط‌های قابل استفاده توسط ایندکس (مثل ST_Intersects و محدوده‌های جعبه‌ای)، و اجرای VACUUM/ANALYZE پس از بارگذاری‌های حجیم است. در بخش تنظیمات Postgres هم به shared_buffers، effective_cache_size، work_mem، موازی‌سازی، تنظیمات autovacuum و در صورت نیاز پارتیشن‌بندی اشاره می‌شود. برای سرویس‌های Go (به نقل از Golang Weekly)، استفاده از pooling مناسب، جلوگیری از الگوهای N+1، Batch کردن عملیات، بهره‌گیری از COPY و تعیین statement_timeout توصیه شده است. رویکرد کلی: اندازه‌گیری، اعمال تغییرات هدفمند، و اعتبارسنجی مداوم برای رسیدن به کارایی پایدار و سریع‌تر.

#PostGIS #PostgreSQL #pg_stat_statements #DatabaseTuning #Geospatial #Golang #Performance #SQL

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


👑 @Database_Academy
🔵 عنوان مقاله
Postgres 18: OLD and NEW Rows in the RETURNING Clause

🟢 خلاصه مقاله:
Postgres 18 با تمرکز بر سه حوزه پیش می‌رود: ارگونومی توسعه، قابلیت مشاهده، و بارگذاری داده. پشتیبانی از ارجاع به ردیف‌های OLD و NEW در RETURNING باعث می‌شود نسخه‌های قبل و بعد از تغییر را در همان دستور SQL بگیرید؛ این کار لاگ‌برداری، ثبت تغییرات و منطق حل تعارض را ساده‌تر و کم‌هزینه‌تر می‌کند. بهبودهای COPY—به روایت Brandur Leach—کار با ورودی/خروجی‌های حجیم را خوش‌دست‌تر می‌کند و با پیام‌های واضح‌تر و پیش‌فرض‌های امن‌تر، خطاهای رایج را کم می‌کند. در سطح پایش، Deepak Mahto و Cédric Villemain به ارتقاهای Cumulative Statistics می‌پردازند که با شمارنده‌های منسجم‌تر و سربار کمتر، عیب‌یابی و تنظیم عملکرد را آسان‌تر می‌سازد. حاصل این تغییرات، ترکیبی از تجربه توسعه‌دهنده بهتر و بینش عملیاتی عمیق‌تر در Postgres 18 است.

#Postgres18 #PostgreSQL #RETURNING #COPY #SQL #Database #CumulativeStatistics #OpenSource

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


👑 @Database_Academy
🔵 عنوان مقاله
Pipelining Comes to psql in Postgres 18

🟢 خلاصه مقاله:
** در Postgres 18، ابزار psql فرمان‌های داخلی برای فعال‌سازی و کنترل pipelining در اسکریپت‌های SQL اضافه کرده است. با این قابلیت، چندین کوئری پشت‌سرهم ارسال می‌شوند و منتظر پاسخ تک‌به‌تک نمی‌مانند؛ در نتیجه رفت‌وبرگشت‌های شبکه کمتر و زمان اجرا کوتاه‌تر می‌شود. به‌گفته Daniel، این کار می‌تواند بهره‌وری و throughput کوئری‌ها را به‌طور چشمگیری افزایش دهد، به‌ویژه در اسکریپت‌های پر از دستورات کوچک.

این ویژگی برای کارهای حجیم و خودکار مانند بارگذاری داده، پردازش‌های ETL، تحلیل‌ها و مهاجرت‌های اسکیما بسیار مفید است. می‌توان pipelining را فقط در بخش‌های مناسب یک اسکریپت فعال کرد و برای اطمینان از سازگاری و بازگردانی، مرزبندی تراکنش‌ها و مدیریت خطا را دقیق انجام داد. در صورت عدم استفاده، رفتار psql مانند قبل باقی می‌ماند و با سایر تکنیک‌های بهینه‌سازی سرور تکمیل می‌شود، نه اینکه جایگزین آن‌ها باشد.

#Postgres
#psql
#Pipelining
#SQL
#DatabasePerformance
#PostgreSQL18
#Throughput
#ETL

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


👑 @Database_Academy
🔵 عنوان مقاله
SQL Shader (Tool)

🟢 خلاصه مقاله:
SQL Shader ابزاری مرورگری بر پایه DuckDB-WASM است که کوئری‌های SQL را به گرافیک‌های رویه‌ایِ بلادرنگ تبدیل می‌کند تا رفتار و کارایی موتور پایگاه‌داده را به‌صورت بصری کاوش و درک کنید. همه‌چیز به‌صورت محلی در مرورگر اجرا می‌شود، بدون نیاز به سرور و با حفظ حریم خصوصی. با تغییر کوئری‌ها—مثل فیلترها، نوع join یا اندازه داده—نمایش‌های بصری فوراً تغییر می‌کنند و شاخص‌هایی مانند زمان اجرا، تعداد ردیف‌ها یا الگوی عملگرها را به شکل قابل مشاهده نشان می‌دهند. این ابزار برای آموزش مفاهیم پایگاه‌داده، نمایش تعاملی عملکرد، و آزمایش سریع رفتار کوئری‌ها بسیار کاربردی است.

#SQL #DuckDB #WASM #WebAssembly #DataVisualization #DatabasePerformance #BrowserTools #SQLShader

🟣لینک مقاله:
https://dmkskd.github.io/sql-shader/?utm_source=tldrdata


👑 @Database_Academy
🔵 عنوان مقاله
pqr.sql: Generate QR Codes with Pure SQL in Postgres

🟢 خلاصه مقاله:
**pqr.sql یک ایده‌ی خلاقانه است که نشان می‌دهد می‌توان QR Code را تنها با SQL و مستقیماً داخل Postgres تولید کرد. این کار بدون افزونه یا کد اپلیکیشن انجام می‌شود و برای محیط‌های محدود یا سناریوهای خودبسنده مفید است و جنبه آموزشی خوبی برای توانمندی‌های SQL در Postgres دارد. با این حال، به چندصد خط SQL نیاز دارد و برای تولید عملیاتی جایگزین کتابخانه‌های تخصصی نیست؛ اما نمونه‌ای جذاب با کاربردهای غیربدیهی است.

#Postgres #PostgreSQL #SQL #QRCode #PureSQL #Databases #SQLTricks

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


👑 @Database_Academy
🔵 عنوان مقاله
PL/Haskell 5.0: Use Haskell in Your SQL Functions

🟢 خلاصه مقاله:
خلاصه‌ای از PL/Haskell 5.0: این نسخه امکان نوشتن توابع SQL در Postgres با استفاده از زبان تابعی Haskell را فراهم می‌کند. با وجود غیر‌رویه‌ای بودن Haskell، کدها به‌گونه‌ای ارائه می‌شوند که Postgres بتواند آن‌ها را به‌عنوان توابع و رویه‌ها اجرا کند و شما منطق کاربردی را مستقیماً از داخل SQL فراخوانی کنید. در نسخه ۵.۰، پشتیبانی از انواع تاریخ و زمان اضافه شده است؛ بنابراین می‌توانید کارهای رایج مرتبط با داده‌های زمانی، مانند کار با timestampها، زمان‌بندی و محاسبات زمانی را داخل پایگاه‌داده و با اتکا به مزایای شفافیت و نوع‌محوری Haskell انجام دهید.

#Haskell #PostgreSQL #SQL #FunctionalProgramming #Database #PLHaskell #DateTime

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


👑 @Database_Academy
🔵 عنوان مقاله
Sanitizing SQL with SQL

🟢 خلاصه مقاله:
این مقاله یک تابع نمونه در PL/pgSQL معرفی می‌کند که SQL خام را می‌گیرد و نسخه‌ای Sanitized برمی‌گرداند تا اطلاعات هویتی حساس (PII) حذف یا ماسک شود. نتیجه این است که می‌توان کوئری‌ها را برای لاگ، دیباگ و اشتراک‌گذاری، بدون افشای داده‌های واقعی، امن‌تر کرد. چون این کار داخل PostgreSQL انجام می‌شود، ادغام آن با تریگرها، مسیرهای لاگ و کد موجود ساده است و نیاز به ابزار خارجی ندارد. البته این فقط یک اثبات ایده است و همه حالات و گویش‌های SQL را پوشش نمی‌دهد و ممکن است خطا یا هزینهٔ کارایی داشته باشد؛ بهبودهایی مثل توکنیزه‌کردن بهتر و قواعد پیکربندی‌پذیر پیشنهاد می‌شوند. پیام اصلی: می‌توان Sanitization را مستقیماً با خود SQL انجام داد و حریم خصوصی را حفظ کرد.

#SQL #PLpgSQL #PII #DataPrivacy #DatabaseSecurity #Logging #PostgreSQL

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


👑 @Database_Academy
1
🔵 عنوان مقاله
Getting a Portable Setup for Postgres 18 on Windows

🟢 خلاصه مقاله:
این راهنمای عملی از Mohit Sindhwani نشان می‌دهد چطور یک نمونه کاملاً پرتابل از Postgres 18 را روی Windows راه‌اندازی کنید؛ بدون نصب‌کننده، بدون سرویس Windows و بدون نیاز به دسترسی ادمین. روش پیشنهادی برای توسعه‌دهندگان، مدرس‌ها و هر کسی که یک دیتابیس ایزوله و قابل‌حمل می‌خواهد ایده‌آل است.

نویسنده توصیه می‌کند نسخه ZIP (قابل حمل) را دریافت و در یک پوشه مستقل استخراج کنید، سپس با initdb دایرکتوری data را با تنظیمات مناسب (مثل UTF8 و locale) بسازید. مدیریت سرور با pg_ctl انجام می‌شود و برای پورت یا مسیرها می‌توان از تنظیمات postgresql.conf یا پارامترهای خط فرمان استفاده کرد. برای سهولت، اسکریپت‌های start/stop و تنظیم PATH تنها در همان نشست پیشنهاد می‌شود تا چیزی در سیستم ثبت نشود.

اتصال با psql صورت می‌گیرد و در صورت نیاز می‌توان از ابزارهای گرافیکی مانند pgAdmin یا DBeaver بهره برد. راهنما بر امنیت پایه تأکید دارد: دسترسی پیش‌فرض محلی است و برای دسترسی شبکه‌ای باید pg_hba.conf و listen_addresses را با احتیاط تنظیم کنید. پشتیبان‌گیری با pg_dump انجام می‌شود و چون نصب سیستمی وجود ندارد، پاک‌سازی تنها با توقف سرویس و حذف پوشه انجام می‌گیرد. نتیجه، یک فرآیند تمیز، تکرارپذیر و واقعاً پرتابل برای Postgres 18 روی Windows است.

#PostgreSQL #Postgres #Windows #Portable #Database #SQL #DevEnvironment #Tutorial

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


👑 @Database_Academy
🔵 عنوان مقاله
Introducing pg_lake: Integrate Your Data Lakehouse with Postgres

🟢 خلاصه مقاله:
pg_lake مجموعه‌ای از افزونه‌ها برای Postgres است که اتصال مستقیم به درياچه‌داده و Lakehouse را ممکن می‌کند: پشتیبانی جامع از Iceberg و دسترسی به فایل‌های Parquet، CSV و JSON بدون جابه‌جایی داده یا خروج از محیط Postgres. این راهکار با ادغام شفاف DuckDB در موتور پرس‌وجوی Postgres، اجرای برداری و ستونی سریع را برای اسکن‌ها و تجمع‌های سنگین فراهم می‌کند، در حالی‌که همچنان با SQL آشنا کار می‌کنید. با pg_lake می‌توانید داده‌های دریاچه را مثل جدول‌های عادی بخوانید، آن‌ها را با جداول عملیاتی Postgres جوین بزنید و نیاز به ETL اضافی را کاهش دهید. پشتیبانی از Iceberg برای سناریوهایی مثل پارتیشن‌بندی و تکامل طرحواره مناسب است و مسیرهایی مانند تحلیل‌های موردی، کوئری‌های فدره، و مهاجرت تدریجی به Lakehouse را ساده می‌کند. کد و مستندات آن در GitHub در دسترس است.

#pg_lake #Postgres #DataLakehouse #Iceberg #DuckDB #Parquet #SQL #OpenSource

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


👑 @Database_Academy
🔵 عنوان مقاله
Did You Know Postgres Tables are Limited to 1,600 Columns?

🟢 خلاصه مقاله:
اگر نمی‌دانستید، در Postgres هر جدول حداکثر ۱۶۰۰ ستون می‌تواند داشته باشد. این یک محدودیت سخت در هسته سیستم است و با NULL بودن فیلدها یا TOAST دور زده نمی‌شود. اگر شماره issue 226 در سال 2017 را خوانده باشید، احتمالاً این نکته را به خاطر دارید. این سقف به معنای آن است که طراحی‌هایی با جدول‌های بسیار عریض—مثل هر شاخص یک ستون یا طرح‌های EAV تثبیت‌شده—به‌سرعت به حد می‌خورند. راه‌حل‌های بهتر شامل نرمال‌سازی، تفکیک عمودی، تبدیل ستون‌ها به سطرها برای سنجه‌ها، یا استفاده از JSONB برای ویژگی‌های کم‌استفاده و پراکنده است. جدول‌های خیلی عریض علاوه بر ریسک رسیدن به سقف، هزینه I/O و نگهداری را بالا می‌برند. نتیجه عملی: با در نظر گرفتن حد ۱۶۰۰ ستون، از طرح‌های باریک‌تر و انعطاف‌پذیرتر استفاده کنید و قبل از اعمال مهاجرت‌ها، تعداد ستون‌ها را بررسی کنید.

#Postgres #PostgreSQL #SQL #DatabaseDesign #DataModeling #SchemaDesign #JSONB #SoftwareEngineering

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


👑 @Database_Academy
🔵 عنوان مقاله
Transaction Pooling in Postgres with Pgcat

🟢 خلاصه مقاله:
این مرور سه موضوع مرتبط در عملیات Postgres را کنار هم می‌گذارد: مدیریت اتصال‌ها با Transaction Pooling از طریق Pgcat، سفر یک پرس‌وجوی SQL درون Postgres، و نقش «Dirty Pages» در کارایی و دوام. در Transaction Pooling، Pgcat اتصال‌های سمت سرور را فقط در طول تراکنش قرض می‌دهد و با افزایش استفاده مجدد از Backendها، هزینه اتصال‌های کوتاه‌عمر را کاهش می‌دهد—به‌ویژه در بارهای Serverless و Microservices. بهای آن، حساسیت به حالت‌های سطح نشست است؛ پس باید وضعیت را داخل تراکنش نگه داشت و به زمان‌بندی‌ها، اندازه Pool و مشاهده‌پذیری توجه کرد. «سفر» Phil Eaton نشان می‌دهد پرس‌وجو چگونه از Parse/Rewrite/Plan به Execution می‌رسد، با تکیه بر آمار و ایندکس‌ها، MVCC، قفل‌ها، Shared Buffers و WAL. توضیحات Jesús Espino و Umair Shahid درباره Dirty Pages می‌گوید صفحاتِ تغییرکرده در حافظه برای کارایی خوب‌اند، اما باید با Checkpoint، Background Writer و تنظیمات WAL مدیریت شوند تا از جهش‌های تاخیری جلوگیری شود. کنار هم، این سه دیدگاه کمک می‌کنند با تغذیه کارآمد اتصال‌ها، فهم مسیر اجرای پرس‌وجو و تنظیم مسیر نوشتن، Postgres را سریع‌تر و قابل‌پیش‌بینی‌تر اجرا کنید.

#Postgres #Pgcat #TransactionPooling #ConnectionPooling #SQL #DatabaseInternals #DirtyPages #WAL

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


👑 @Database_Academy
1
🔵 عنوان مقاله
How to Listen to Database Changes Through the WAL

🟢 خلاصه مقاله:
شنیدن تغییرات دیتابیس از طریق WAL در Postgres یک روش پایدار برای CDC است که بدون تریگر و پولینگ اضافه، رویدادهای INSERT/UPDATE/DELETE را با ترتیب مبتنی بر LSN و قابلیت بازیابی استریم می‌کند. راه‌اندازی شامل wal_level=logical، ساخت replication slot، انتخاب output plugin مثل pgoutput یا wal2json، گرفتن snapshot اولیه و ذخیره LSN برای پیشرفت مصرف‌کننده است. از منظر عملیاتی باید نگه‌داری WAL توسط replication slot، backpressure، تراکنش‌های بزرگ، تغییرات schema، و مدیریت failover و امنیت را پایش کنید و با طراحی آیدمپوتنت در مقصد، تحویل at-least-once را کنترل کنید. در مطالب مرتبط، Peter Ullrich به transaction pooling با Pgcat و قیود آن می‌پردازد، Phil Eaton سفر یک کوئری SQL را در Postgres از parse تا execution روایت می‌کند، و Umair Shahid مفهوم Dirty Pages، نقش background writer/checkpointer و اثر تنظیمات بر پایداری I/O را توضیح می‌دهد.

#Postgres #WAL #ChangeDataCapture #LogicalDecoding #Pgcat #SQL #DirtyPages #DatabaseInternals

🟣لینک مقاله:
https://postgresweekly.com/link/176684/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
🔵 عنوان مقاله
Storing Products, Prices and Orders in Postgres

🟢 خلاصه مقاله:
این مقاله نشان می‌دهد که در ذخیره‌سازی محصولات، قیمت‌ها و سفارش‌ها در Postgres نرمال‌سازی افراطی می‌تواند دقت تاریخی و کارایی را مختل کند. راهکار پیشنهادی، ترکیب یک هسته رابطه‌ای با دنرمال‌سازی هدفمند است: نگه‌داشتن اسنپ‌شات «همان‌طور که فروخته شد» در سطرهای سفارش (نام/SKU، قیمت، ارز، مالیات و تخفیف) و نسخه‌بندی یا تاریخ‌دار کردن قیمت‌ها برای حفظ سابقه. برای مقادیر پولی از NUMERIC/DECIMAL و کد ارز استفاده می‌شود، محاسبات مالیات و تخفیف ذخیره می‌گردد، و ویژگی‌های متغیر محصول در JSONB همراه با قیود و ایندکس‌های مناسب مدیریت می‌شوند. همچنین بر مهاجرت‌های افزایشی، تراکنش‌ها و ایندکس‌گذاری/پارتیشن‌بندی برای مقیاس‌پذیری تأکید می‌کند تا هم صحت داده و هم عملکرد تضمین شود.

#Postgres #DatabaseDesign #DataModeling #Ecommerce #Pricing #Normalization #Denormalization #SQL

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


👑 @Database_Academy
🔵 عنوان مقاله
SQL Arena (Website)

🟢 خلاصه مقاله:
در سایت SQL Arena، یک رتبه‌بندی بر اساس کیفیت برنامه‌ریزان در زمینه پایگاه‌های داده ارائه شده است. این رتبه‌بندی با استفاده از مجموعه‌ای از پرس‌وجوهای TPC-H، که استانداردهای معتبری در ارزیابی عملکرد و بهینه‌سازی پایگاه‌های داده محسوب می‌شوند، انجام می‌گیرد.

این سیستم رتبه‌بندی با بهره‌گیری از یک ابزار منبع باز ساخته شده مخصوص این هدف، توانسته است معیار دقیقی برای مقایسه و سنجش توانایی برنامه‌ریزان در مدیریت و بهینه‌سازی پایگاه‌های داده فراهم کند. از این رو، کاربران و توسعه‌دهندگان می‌توانند وضعیت و عملکرد برنامه‌ریزان مختلف را در یک جدول رقابتی مشاهده و ارزیابی نمایند.

در مجموع، این پروژه ابزار قدرتمندی است که به کمک آن می‌توان سطح تخصص و توانایی برنامه‌ریزان در بهبود کارایی پایگاه‌های داده را بهتر درک کرد و انتخاب‌های آگاهانه‌تری در این زمینه داشت.

#پایگاه_داده #رتبه‌بندی #بهینه‌سازی #SQL

🟣لینک مقاله:
https://sql-arena.com/index.html?utm_source=tldrdata


👑 @Database_Academy
🔵 عنوان مقاله
Scan Types in EXPLAIN Plans Explained

🟢 خلاصه مقاله:
انواع اسکن در طرح‌های EXPLAIN چگونه است؟

استفاده از دستور EXPLAIN برای درک چگونگی اجرای یک کوئری، کمک بزرگی در عیب‌یابی مشکلات عملکرد یا بهینه‌سازی کوئری‌های SQL است. این ابزار به شما نشان می‌دهد که سیستم چگونه داده‌ها را جست‌وجو می‌کند و منابع را مصرف می‌کند. اما اصطلاحاتی مانند “Seq Scan” و “Index Scan” چه معنی دارند و چه تفاوتی با هم دارند؟

در این مقاله، الیزابت انواع اصلی اسکن‌ها را توضیح می‌دهد. او با ارائه نمودارها، هر نوع اسکن را به وضوح شرح می‌کند و نکات مهم هر یک را برجسته می‌سازد. قطعا پس از مطالعه این مطالب، به درک عمیق‌تری از نحوه کار پایگاه‌های داده و بهبود عملکرد کوئری‌های خود خواهید رسید.

#پایگاه_داده #SQL #بهینه_سازی #توسعه

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


👑 @Database_Academy
🔵 عنوان مقاله
ALTER TABLE .. MERGE PARTITIONS

🟢 خلاصه مقاله:
در جدیدترین شماره خبرنامه Golang Weekly، موضوع مهمی مورد بررسی قرار گرفته است که به قابلیت‌های مدیریت داده‌ها در پایگاه‌های داده مرتبط است. این مقاله به بررسی نحوه کار با دستورات «ALTER TABLE» و ویژگی مهم «MERGE PARTITIONS» می‌پردازد، که ابزار قدرتمندی برای سازماندهی و بهینه‌سازی حجم بزرگ داده‌ها محسوب می‌شود.

در این مقاله، ابتدا به اهمیت مدیریت بخش‌های مختلف داده‌ها در جداول پایگاه داده اشاره شده است. این بخش‌بندی‌ها یا پارتیشن‌ها، کمک می‌کنند تا عملیات خواندن و نوشتن روی داده‌ها سریع‌تر انجام شود و فرآیند نگهداری و به‌روزرسانی داده‌ها منظم‌تر باشد. یکی از امکانات پیشرفته در این زمینه، امکان ادغام پارتیشن‌ها است که به کمک دستور «MERGE PARTITIONS» در «ALTER TABLE»، می‌توان چند پارتیشن مجزا را با هم ترکیب کرد و ساختار منطقی پایگاه داده را بهبود بخشید.

در ادامه، جزئیات نحوه استفاده از این دستور توضیح داده شده و مزایای آن برای توسعه‌دهندگان و مدیران پایگاه داده برشمرده شده است. ادغام پارتیشن‌ها سبب کاهش پیچیدگی مدیریت داده‌ها می‌شود و کارایی عملیات جستجو و بازیابی اطلاعات را افزایش می‌دهد. این قابلیت، به‌ویژه در سیستم‌هایی که حجم بسیار بالای داده دارند، نقشی حیاتی ایفا می‌کند و کمک می‌کند تا پایگاه داده‌ها به شکل بهتری سازماندهی شوند.

در نهایت، مقاله نکات مهمی را درباره نحوه صحیح به‌کارگیری این دستور و نکاتی که باید در نظر گرفته شود، ارائه می‌دهد، تا کاربران بتوانند به بهترین شکل از آن بهره‌مند شوند و ساختار پایگاه داده خود را بهینه کنند.

در کل، این مقاله ابزار و راهکارهای مفیدی را برای بهبود و به‌روزرسانی ساختار داده‌ها در پروژه‌های بزرگ ارائه می‌دهد و به توسعه‌دهندگان و مدیران پایگاه داده کمک می‌کند تا سیستم‌های کارآمدتر و مدیریتی بهتر داشته باشند.

#پایگاه_داده #مدیریت_پارتیشن #پایگاه_داده_هوشمند #SQL

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


👑 @Database_Academy
🔵 عنوان مقاله
RegreSQL 1.5: Regression Testing for SQL Queries

🟢 خلاصه مقاله:
رگرس‌اس‌کیول ۱.۵: آزمون‌های رجیسیون برای کوئری‌های SQL

در اصل، مفهوم این ابزار بسیار ساده است ولی در عین حال بسیار کاربردی. شما کافی است کوئری‌های خود را اجرا کنید و نتایج مورد انتظار را ثبت کنید. سپس، در اجرای‌های بعدی، این نتایج را با نتایج جدید مقایسه می‌کنید تا هرگونه تغییر در هزینه، ورودی و خروجی، یا سایر ویژگی‌های کوئری‌ها را شناسایی کنید. این فرآیند به شما کمک می‌کند در صورت وقوع تغییرات غیرمنتظره در نتایج، سریعاً مطلع شوید و از بروز مشکلات بزرگ جلوگیری کنید. با استفاده از این ابزار، کنترل بهتری بر روی کیفیت و عملکرد کوئری‌های SQL خود خواهید داشت و خطاهای احتمالی به سهولت قابل شناسایی است.

#تست_رگرسیون #SQL #پکیج_برنامه_نویسی #پایگاه_داده

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


👑 @Database_Academy