منبع: مجله شبکه
شماره:53
snapshot lsolation level
یکی از روش هایی که به انواع متدهای قفل کردن ردیف های یک جدول بانک اطلاعاتی در نسخه جدید اضافه شده است شیوه تصویر برداری از رکورد است . در روش های قبلی،اگر یک یا چند رکورد بانک اطلاعاتی توسط دستور Begitn Trans که شروع یک فرآیند را مشخص می کند در شرف تغییر یا حذف قرار می گرفتند،تا مادامی که فرآیند مذکور توسط دستور Commit Trans تایید یا توسط rollback منتفی نشود،از هیچ جا و برنامه ای نمی توان رکوردهای مذکور را حتی با دستور ساده select خواند . اما در روش جدید قفل گذاری در صورت بروز چنین رویدادی سایر کاربران می توانند همواره آخرین ارزش رکوردهای مذکور را با این فرض که هنوز هیچ تغییری در آن ها ایجاد نشده است بخوانند و مورد استفاده قرار دهند .
باز هم دات نت
با نسخه جدید SQL Server ،برنامه نویسان بانک های اطلاعاتی قادرند از امکانات و قابلیت های موجود در پلتفرم دات نت و کلیه توابع و کلاس های ساخته شده در آن بهره مند شوند . یکی از ابتدایی ترین و در عین حال اساسی ترین این قابلیت ها،امکان استفاده از دو زبان مهم و کاربر پسند دات نت یعنی ویژوال بیسیک و سی شارپ در پیاده سازی اجزای مختلف یک بانک اطلاعاتی است . این عامل نه تنها باعث می شود که برنامه نویسان برای نوشتن ماژول هایی مثل تریگرها،روال ها(stored Procedures ) در توابع به جای استفاده از زبان استاندارد و در عین حال پیچیده t-sql ،بتوانند از زبان های محیط دات نت با تمام ساختارها،دستورات،کلاس ها،آرایه ها،و خلاصه تمام ویژگی های یک زبان شی گرا استفاده کنند،بلکه این همکاری نزدیک بین موتور برنامه نویسی دات نت یعنی CLR (مسئول تبدیل کدهای نوشته شده دات نت به زبان سیستم عامل است) و موتور بانک اطلاعاتی SQL Server باعث شده تا به غیر از تنوع زبان های برنامه نویسی قابل استفاده در sql server ،تغییر قابل توجهی نیز در کارآیی ماژول های مذکور پیش آید . در واقع موضوع از این قرار است که اصولا” کدهای نوشته شده به زبان های دات نت، ابتدا توسط کامپایلر به زبان (IL ) ترجمه می شوند . سپس CLR این کد میانی را به کد قابل فهم سیستم عامل تبدیل و آماده اجرا می نماید . این کار سبب می شود تا کدهای نهایی به دلیل این بسیار به سیستم عامل نزدیک می باشد سریع تر از کدهای TSQL (که فقط توسط موتور بانک اطلاعاتی قابل اجرا هستند )اجرا شوند و در زمان اجرا از کارایی بیشتری برخوردار باشند . البته این مساله بدین معنی نیست که استفاده از زبان های دات نت همیشه بر زبان های SQL ارجحیت دارد،بلکه منظور آن است که در برخی موارد ممکن است آن قدر منطق و الگوریتم یک ماژول پیچیده باشد که برنامه نویس استفاده از زبان های دات نت را به دلیل آسان تر بودن ساختار و دستورات آن به زبان SQL ترجیح دهد . بنابراین زمانی که بیشتر عملیات یک ماژول مربوط به خواندن و نوشتن اطلاعات باشد بهتر است از همان دستورات استاندارد SQL یعنی delete,Update,selecr و insert استفاده کرده و بی جهت منابع سیستم را صرف تعریف متغیرها و کلاس های دات نت ننماید . اما در ماژول هایی که بیشتر عملیاتشان شامل پردازش اطلاعات مثل انجام عملیات های ریاضی یا مقا یسه اطلاعات با یکدیگر است بهتر است تا هم از امکانات برنامه نویسی و هم از سرعت و کارایی بالای دات نت در این زمینه بهره برد و ماژول های مذکور را با زبان های دات نت پیاده سازی کرد .
ado . net وارد می شود
طبق یک سنت نه چندان قدیمی برنامه نویسی در محیط ویندوز،برنامه نویسان SQL Server بانک اطلاعاتی مورد نظرشان را بروی سرور و برنامه کاربردی نوشته شده با زبانی مثل ویژوال بیسیک را بر روی کلاینت ها قرار می دهند . سپس از طریق این برنامه کاربردی و با استفاده ا زاشیای از جنس ado داده های مورد نیاز خود را از سمت سرور دریافت کرده و یا به آن ارسال می کنند . اکنون این ارتباط به لطف نسخه جدید SQL Server و همچنین محیط دات نت با امکانات جدید ado . net بسیار کامل تر از قبل شده است . این ارتباط جدید با استفاده از مکانیسمی به نام اعلان (Notification ) به یک ارتباط دو طرفه فعال تبدیل شده به طوری که add . net قادر است پیغام هایی را از سمت پایگاه داده به سمت کلاینت ارسال کند . به عنوان مثال فرض کنید که شما با استفاده از ado تعدادی از رکوردهای یک جدول بانک اطلاعاتی را انتخاب کرده و مشغول کار بر روی آن ها هستید . در همین هنگام کاربر دیگری از طریق کلاینت و ADO خود،رکوردی در محدوده رکوردهای مورد انتخاب شما را تغییر می دهد یا حذف می کند