TGViewer
DevTwitter | توییت برنامه نویسی DevTwitter | توییت برنامه نویسی @devtwitter · 32.6K subscribers
Post #13548 2.08K
چرا Update در SQL Server سریع‌تر از Delete + Insert است؟

مدتی پیش در پروژه‌ی "بهای تمام شده" و "ریال انبار"، با چالشی روبرو شدم که باعث شد دوباره به اصول پایه‌ای عملکرد دیتابیس فکر کنم.
ما برای محاسبه مجدد ریالی انبار، نیاز داشتیم حجم زیادی از داده‌ها را بازنویسی کنیم. دو راه پیش رو داشتیم:
1. ردیف‌های قدیمی را DELETE کنیم و ردیف‌های جدید را INSERT کنیم.
2. یا ردیف‌های موجود را با مقادیر جدید UPDATE کنیم.
در نگاه اول شاید فکر کنید این دو عملیات از نظر منطقی یکی هستند؛ اما در عمل، وقتی از روش Delete + Insert استفاده می‌کردیم، سرعت فرآیند بسیار پایین بود و سیستم تحت فشار قرار می‌گرفت. اما به محض اینکه استراتژی را به UPDATE تغییر دادم، شاهد بهبود چشمگیر سرعت بودیم.
اگر فکر می‌کنید UPDATE هم همان DELETE + INSERT است، باید به ساختار زیرین نگاه کنید:

هزینه‌ی ایندکس‌ها (The Index Trap):
در روش حذف و درج، شما مجبورید تمام ایندکس‌های جدول را برای حذف "پاکسازی" و برای درج مجدد "بازسازی" کنید. اما در UPDATE (اگر ستون‌های ایندکس‌شده تغییر نکنند)، SQL Server اصلاً درگیر ساختار ایندکس‌ها نمی‌شود و فقط مقدار را در همان بلوک داده تغییر می‌دهد.

پایداری در صفحات داده (Data Pages):
عملیات حذف و درج مجدد، باعث ایجاد Fragmentation در صفحات داده می‌شود و احتمال Page Split را بالا می‌برد. در حالی که UPDATE سعی می‌کند عملیات را In-place و در همان مکان قبلی انجام دهد.

مدیریت تراکنش (Logging):
مدیریت یک عملیات واحد، همیشه بهینه‌تر از مدیریت دو عملیات مجزای سنگین در Transaction Log است.

@DevTwitter | <seied Mojtaba sajadi/>
  • 👍 6
  • 🍌 5
  • ❤ 3
More from @devtwitter
  1. Oct 14, 2026داشتم منابع مصاحبه مهندسی داده رو بررسی می‌کردم، گفتم چرا همه مطالبی که پیدا می‌کنم رو یک‌…
  2. Oct 14, 2026پروژه dbBackup_manager؛ ابزاری برای بکاپ و بازیابی دیتابیس PostgreSQL به‌تازگی اولین نسخه…
  3. Oct 14, 2026یه API که برای ۱۰۰ کاربر خوب کار می‌کنه، لزوماً برای ۱۰ هزار کاربر آماده نیست. فرض کن یه A…
  4. Oct 14, 2026اگر بین انتخاب مسیر و ارزش یادگیری برنامه‌نویسی در عصر هوش مصنوعی شک دارید، پیشنهاد می‌کنم…
  5. Oct 14, 2026دوره جامع پایتون: مقدماتی تا پیشرفته 🗓شروع دوره:2 آبان 🎁 تخفیف ویژه برای دانشجویان، فرصت…
  6. Oct 14, 2026چین یه OCR اوپن سورس منتشر کرده که می‌تونه ده‌ها صفحه PDF رو یک‌جا بخونه! اسمش Unlimited-O…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →