SQL باعث می شود و چه موقع یا از آنها استفاده نکنید.

ساخت وبلاگ

هنگامی که من در ابتدا در مورد SQL یاد می گرفتم ، همیشه به من گفته می شد ، فقط در صورت نیاز به محرک ها استفاده کنید و در صورت امکان از روشهای ذخیره شده استفاده کنید. اکنون متأسفانه در آن زمان (چند سال پیش خوب) من آنقدر کنجکاو و مراقبت از اصول نبودم که اکنون هستم ، بنابراین هرگز دلیل این دلیل را نپرسیدم. نظر جوامع در این مورد چیست؟آیا این فقط ترجیح شخصی شخصی است ، یا باید از آنها جلوگیری شود (دقیقاً مانند مکان نما) مگر اینکه دلیل خوبی برای آنها وجود داشته باشد.

دنبال کردن از 3 دسامبر 2011 در ساعت 6:23 پرسید جان میچل جان میچل 631 1 1 نشان طلا 6 6 نشان نقره 7 7 نشان برنز 3 دسامبر 2011 در 6:30

7 پاسخ 7

مرتب شده توسط: تنظیم مجدد به طور پیش فرض

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

بحث زیر فقط بر اساس سرور SQL است.

استفاده از محرک ها در هنگام توجیه استفاده از آنها کاملاً معتبر است. به عنوان مثال ، آنها بدون نیاز به کد رویه ای صریح با هر دستور CRUD در هر جدول ، ارزش خوبی در حسابرسی (نگه داشتن تاریخچه داده) دارند.

محرک ها درست قبل از تغییر داده ها و درست پس از تغییر داده ها ، به شما کنترل می کنند. این اجازه می دهد:

  • حسابرسی همانطور که قبلاً ذکر شد
  • اعتبار سنجی و بررسی امنیت کسب و کار در صورت تمایل. به دلیل این نوع کنترل ، می توانید کارهایی مانند قالب بندی ستون را قبل و بعد از درج در پایگاه داده انجام دهید.

همیشه به من گفته می شد ، فقط در صورت نیاز به استفاده از محرک ها استفاده کنید و در صورت امکان از روشهای ذخیره شده استفاده کنید.

ممکن است برخی از دلایل این امر عبارتند از:

  1. برخی از کارکردهایی که محرک ها در قدیم انجام می دادند ، اکنون می توانند به روش های دیگری مانند به روزرسانی کل و محاسبه خودکار در یک ستون انجام شوند.
  2. شما نمی بینید که با بررسی کد به تنهایی بدون دانستن وجود آنها ، ماشه را مورد استفاده قرار می دهد. شما تأثیر آنها را می بینید وقتی می بینید که داده ها تغییر می کنند و گاهی اوقات گیج کننده است که چرا این تغییر رخ داده است ، مگر اینکه بدانید ماشه یا بیشتر در جدول (های) عمل می کند.
  3. اگر از چندین کنترل پایگاه داده مانند Check ، RI ، محرک در چندین جدول استفاده می کنید ، جریان دقیق معامله شما برای درک و نگهداری پیچیده می شود. شما باید دقیقاً بدانید که چه اتفاقی می افتد. باز هم ، برای این کار به مستندات خوبی نیاز خواهید داشت.

برخی از اختلافات بین محرک ها و روشهای ذخیره شده غیر متراکم (در میان سایر موارد) است:

  • یک روش ذخیره شده غیر Trigger مانند برنامه ای است که باید صریحاً از کد یا از یک برنامه ریز یا از یک کار دسته ای و غیره استفاده شود تا کار خود را انجام دهد ، در حالی که یک ماشه یک نوع خاص از روش ذخیره شده است که به عنوان شلیک می شودپاسخ یک رویداد به جای اینکه مستقیماً توسط کاربر اجرا شود. به عنوان مثال ممکن است این رویداد تغییر داده در یک ستون داده باشد.
  • محرک ها انواع دارند. محرک های DDL و محرک های DML (از انواع: به جای ، برای و بعد از آن)
  • روشهای ذخیره شده غیر Trigger می توانند به هر نوع شیء مراجعه کنند ، با این حال ، برای مراجعه به یک نمای ، شما باید به جای محرک ها از آن استفاده کنید.
  • در SQLSERVER ، شما می توانید در روشهای ذخیره شده غیر Trigger ، اما فقط 1 به جای ماشه در هر جدول ، هر شماره ای داشته باشید.

دنبال کردن 39. 4K 40 40 نشان طلا 179 179 نشان های نقره 216 216 نشان های برنز در 3 دسامبر 2011 در ساعت 9:22 پاسخ داد Nochance Nochance 12. 4K 1 1 نشان طلا 21 21 نشان نقره 39 39 نشان برنز

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

آنها همچنین بهترین مکان برای حسابرسی هستند مگر اینکه شما نمی خواهید همه تغییرات در پایگاه داده را ضبط کنید (که این مشکل حسابرسی از برنامه است).

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

ماشه ها اغلب نسبت به سایر وسایل حفظ یکپارچگی داده کندتر هستند ، بنابراین اگر می توانید از محدودیت چک استفاده کنید ، به جای ماشه از آن استفاده کنید.

نوشتن محرک های بد که کارهای احمقانه مانند ارسال ایمیل انجام می دهند ، آسان است. آیا واقعاً می خواهید اگر سرور ایمیل پایین بیاید ، نتوانید سوابق موجود در DB را تغییر دهید؟

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

فارکس را از کجا شروع کنیم...
ما را در سایت فارکس را از کجا شروع کنیم دنبال می کنید

برچسب : نویسنده : لیما اصغرپورسازونی بازدید : 37 تاريخ : يکشنبه 4 تير 1402 ساعت: 17:16