در مطلبی که سال گذشته با عنوان آیا دوران پادشاهی اوراکل در حوزهی مدیریت پایگاههای داده عملیاتی به پایان رسیده است؟ منتشر کردیم، به بررسی بهترین سیستم مدیریت پایگاه داده عملیاتی، پرداختیم. طبق آخرین رنکینگ شرکت معتبر گارتنر در مورد بهترین سیستم مدیریت پایگاه داده عملیاتی که به تازگی منتشر شده، SQL Server، برای دومین سال پیاپی توانست بالاتر از اوراکل، جایگاه اول را بدست آورد.
You might think, as a developer, that nothing but the best is good enough as a development database. You might be mistaken. There is a lot to be said for LocalDB, but Ed Elliott argues that every edition has its pros and cons, and you need to consider Cloud-based resources, VMs and Containerised databases too. There is a whole range of alternatives and how you choose depends on the type of database you are developing, but for Ed, LocalDB gets the five-star accolade
تفاوت Delete و Truncate :
دستور Delete جز دستورات DML هست یا بعبارتی Data Manipulation Language میباشد که برای اعمالی چون واکشی ، ذخیره سازی ، تغییرات و حذف مورد استفاده قرار میگیرند
دستور Truncate جز دستورات DDL هست یا بعبارتی Data Definition Language میباشد و برای ایجاد , تغییرات در ساختار آبجکتها ( مثل جدول ، ایندکس و ..) مورد استفاده قرار میگیرد
دستور Delete در زمان اجرا قفل گذاری را در سطح ردیف انجام میدهد (row lock)
دستور Truncate قفل گذاری را در سطح جدول در نظر میگیرد (table lock)
دستور Delete میتواند شامل فیلتر (where) برای حذف ردیفهای خاصی باشد
دستور Truncate نمیتواند شامل فیلتر (where) باشد و روی حذف تمام جدول عمل میکند
نکته :
با استفاده از دستور Delete میتوان بخشی از رکوردهای مشخص را حذف نمود ولی با دستور Truncate تمام رکوردها ی جدول حذف میشوند (دستور Truncate نتیجه اجرای دو دستور Drop و Create میباشد)
دستور Delete نسبت به دستور Truncate کندتر عمل میکند زیرا تمام تغییرات در Log ذخیره میکند در نتیجه قابلیت Rollback ممکن میباشد
دستور Truncate نسبت به دستور Delete سریعتر عمل میکند زیرا به ازای اجرای آن در فایل Log چیزی ثبت نمیشود در نتیجه قابلیت Rollback را ندارد
همراه دستور Delete قابلیت اجرای تریگر را داریم
در اجرای دستور Truncate قابلیت اجرای تریگر را نداریم
نکته:
اگر از Transaction استفاده کنیم هر دو دستور Delete و Truncate قابلیت rollback شدن را دارا هستند
دستور Delete جز دستورات DML هست یا بعبارتی Data Manipulation Language میباشد که برای اعمالی چون واکشی ، ذخیره سازی ، تغییرات و حذف مورد استفاده قرار میگیرند
دستور Truncate جز دستورات DDL هست یا بعبارتی Data Definition Language میباشد و برای ایجاد , تغییرات در ساختار آبجکتها ( مثل جدول ، ایندکس و ..) مورد استفاده قرار میگیرد
دستور Delete در زمان اجرا قفل گذاری را در سطح ردیف انجام میدهد (row lock)
دستور Truncate قفل گذاری را در سطح جدول در نظر میگیرد (table lock)
دستور Delete میتواند شامل فیلتر (where) برای حذف ردیفهای خاصی باشد
دستور Truncate نمیتواند شامل فیلتر (where) باشد و روی حذف تمام جدول عمل میکند
نکته :
با استفاده از دستور Delete میتوان بخشی از رکوردهای مشخص را حذف نمود ولی با دستور Truncate تمام رکوردها ی جدول حذف میشوند (دستور Truncate نتیجه اجرای دو دستور Drop و Create میباشد)
دستور Delete نسبت به دستور Truncate کندتر عمل میکند زیرا تمام تغییرات در Log ذخیره میکند در نتیجه قابلیت Rollback ممکن میباشد
دستور Truncate نسبت به دستور Delete سریعتر عمل میکند زیرا به ازای اجرای آن در فایل Log چیزی ثبت نمیشود در نتیجه قابلیت Rollback را ندارد
همراه دستور Delete قابلیت اجرای تریگر را داریم
در اجرای دستور Truncate قابلیت اجرای تریگر را نداریم
نکته:
اگر از Transaction استفاده کنیم هر دو دستور Delete و Truncate قابلیت rollback شدن را دارا هستند