چهارشنبه, ۲۶ دی, ۱۴۰۳ / 15 January, 2025
نگاهی به امكانات نسخه جدید SQL Server ۲۰۰۵
Snapshot Isolation Level
یكی از روشهایی كه به انواع متدهای قفل كردن ردیفهای یك جدول بانكاطلاعاتی در نسخه جدید اضافه شده است، شیوه تصویربرداری از ركورد است. در روشهای قبلی، اگر یك یا چند ركورد بانك اطلاعاتی توسط دستور BeginTrans كه شروع یك فرآیند را مشخص میكند در شرف تغییر یا حذف قرار میگرفتند، تا مادامی كه فرآیند مذكور توسط دستور Commit Trans تأیید یا توسط RollBack منتفی نشود، از هیچ جا و برنامهای نمیتوان ركوردهای مذكور را حتی با دستور ساده SELECT خواند. اما در روش جدید قفلگذاری، در صورت بروز چنین رویدادی سایر كاربران میتوانند همواره آخرین ارزش ركوردهای مذكور را با این فرض كه هنوز هیچ تغییری در آنها ایجاد نشده است بخوانند و مورد استفاده قرار دهند.
. باز هم داتنت
با نسخه جدید SQL Server، برنامهنویسان بانكهای اطلاعاتی قادرند از امكانات و قابلیتهای موجود در پلتفرم داتنت و كلیه توابع و كلاسهای ساخته شده در آن بهرهمند شوند. یكی از ابتداییترین و در عین حال اساسیترین این قابلیتها، امكان استفاده از دو زبان مهم و كاربرپسند داتنت یعنی ویژوال بیسیك و سیشارپ در پیادهسازی اجزای مختلف یك بانكاطلاعاتی است. این عامل نهتنها باعث میشود كه برنامهنویسان برای نوشتن ماژولهایی مثل تریگرها، روالها (Stored Procedures) در توابع به جای استفاده از زبان استاندارد و در عین حال پیچیده T-SQL ، بتوانند از زبانهای محیط داتنت با تمام ساختارها، دستورات، كلاسها، آرایهها، و خلاصه تمام ویژگیهای یك زبان شی گرا استفاده كنند، بلكه این همكاری نزدیك بین موتور برنامهنویسی داتنت یعنی CLR (كه مسؤول تبدیل كدهای نوشته شده داتنت به زبان سیستمعامل است) و موتور بانك اطلاعاتی SQLServer باعث شده تا به غیر از تنوع زبانهای برنامهنویسی قابل استفاده درSQLServer، تغییر قابل توجهی نیز در كارایی ماژولهای مذكور پیش آید. در واقع موضوع از این قرار است كه اصولاً كدهای نوشته شده به زبانهای داتنت، ابتدا توسط كامپایلر به زبان (IL) ترجمه میشوند. سپس CLR این كد میانی را به كد قابل فهم سیستمعامل تبدیل و آماده اجرا مینماید. این كار سبب میشود تا كدهای نهایی به دلیل اینكه بسیار به سیستمعامل نزدیك میباشد سریعتر از كدهای TSQL (كه فقط توسط موتور بانك اطلاعاتی قابل اجرا هستند) اجرا شوند و در زمان اجرا از كارایی بیشتری برخوردار باشند. البته این مسأله بدین معنی نیست كه استفاده از زبانهای داتنت همیشه بر زبانهای SQL ارجحیت دارد، بلكه منظور آن است كه در برخی موارد ممكن است آن قدر منطق و الگوریتم یك ماژول پیچیده باشد كه برنامهنویس استفاده از زبانهای داتنت را به دلیل آسانتر بودن ساختار و دستورات آن به زبان SQL ترجیح دهد. بنابراین زمانی كه بیشترعملیات یك ماژول مربوط به خواندن و نوشتن اطلاعات باشد بهتر است از همان دستورات استاندارد SQL یعنی SELECT ،UPDATE ،DELETE وINSERT استفاده كرده و بیجهت منابع سیستم را صرف تعریف متغیرها و كلاسهای داتنت ننماید. اما در ماژولهایی كه بیشتر عملیاتشان شامل پردازش اطلاعات مثل انجام عملیاتهای ریاضی یا مقایسه اطلاعات با یكدیگر است بهتر است تا هم از امكانات برنامهنویسی و هم از سرعت و كارایی بالای داتنت در این زمینه بهره برد و ماژولهای مذكور را با زبانهای داتنت پیادهسازی كرد.
. ADO .NET وارد میشود
طبق یك سنت نهچندان قدیمی برنامهنویسی در محیط ویندوز، برنامهنویسان SQLServer، بانك اطلاعاتی موردنظرشان را برروی سرور و برنامه كاربردی نوشته شده با زبانی مثل ویژوال بیسیك را بر روی كلاینتها قرار میدهند. سپس از طریق این برنامه كاربردی و با استفاده از اشیایی از جنس ADO دادههای موردنیاز خود را از سمت سرور دریافت كرده و یا به آن ارسال میكنند. اكنون این ارتباط به لطف نسخه جدید SQLServer و همچنین محیط داتنت، با امكانات جدیدADO.NET بسیار كاملتر از قبل شده است. این ارتباط جدید با استفاده از مكانیسمی به نام اعلان (Notification) به یك ارتباط دوطرفه فعال تبدیل شده به طوری كه ADO.NET قادر است پیغامهایی را از سمت پایگاه داده به سمت كلاینت ارسال كند. به عنوان مثال فرض كنید كه شما با استفاده ازADO تعدادی از ركوردهای یك جدول بانك اطلاعاتی را انتخاب كرده و مشغول كار برروی آنها هستید. در همین هنگام كاربر دیگری از طریق كلاینت و ADO خود، ركوردی در محدوده ركوردهای مورد انتخاب شما را تغییر میدهد یا حذف میكند. در این وقت موتور پایگاه داده با ارسال پیغامی به ADO شما، این مسأله را با استفاده از فراخوانی یك رخداد (Event) شی ADO به اطلاعتان میرساند. علاوه براین قابلیت جدید، فناوری جدید دیگری هم با استفاده ازADO.NET به نسخه جدید SQLServer اضافه شده و آن امكان چند پرسوجوی همزمان توسط یك شی ADO است. در این شیوه اگر یك شی ADO با استفاده از دستور SELECT مشغول خواندن تعدادی از ركوردهای یك جدول بانك اطلاعاتی باشد، میتواند بدون اینكه منتظر به پایان رسیدن این عملیات شود، تعداد دیگری از ركوردهای یك جدول دیگر بانك اطلاعاتی را بخواند. این قابلیت جدید با نام (Multiple Active Result Set (MARS كه قبلاً فقط در كرسرهای سمت سرور (server side) و آن هم نه با كارایی بالا وجود داشت اكنون در كرسرهای سمت راست كلاینت هم وجود دارد و تفاوت عمده آن با شكل قدیمی هم علاوه بر مورد مذكور، امكان ایجاد چند كرسر در یك شی ADO به صورت همزمان است. SQLServer نسخه ۲۰۰۵ به خوبی از تمام این ویژگیها، پشتیبانی میكند.
. تكنولوژی XML
اكنون كه XML به یك استاندارد ارتباطی بین سكوهای مختلف تبدیل شده است، نسخه جدید SQLServer هم از توجه كافی به آن و ایجاد یك انقلاب در سادهتر استفاده كردن از آن طفره نرفته است. در نسخه ۲۰۰۰ كاربران قادر بودند تا با استفاده از دستور FOR XML نتیجه یك پرسوجوی SELECT از یك بانك اطلاعاتی را به درون یك فایل XML بریزند یا مثلاً با دستور OPEN XML میتوانستند یك فایل XML را باز كرده و شروع به خواندن دستورات درون آن نمایند. از آنجا كه در نسخه جدید SQLServer توجه خاصی به این استاندارد و زبان ارتباطی شده است، یك نوع داده جدید (Data type) به انواع دادههای قبلی و استاندارد SQL مثل int ، char و امثال آن اضافه شده است. این نوع داده جدید كه XML نام دارد و دارای خصوصیات یك نوع داده موجود در یك محیط شیگرا است، دارای متدهای پیشرفتهای چون ()nodes() ،Value() ،exist() ،query و ()modify بوده و قادر است انواع پردازشهای قابل انجام برروی اسناد XML را به راحتی انجام دهد. عملیات جستجو، تغییر، حذف و درج مقادیر موردنظر در داخل یك فایل XML را میتوان با استفاده از متدهای مذكور و صرفاً با چند خط برنامهنویسی انجام داد. همچنین در این نسخه برخلاف نسخه ۲۰۰۰، با استفاده از دستور FOR XML میتوان یك شیء از جنس XML را بدون ارسال آن به كلاینت، برروی سرور ساخته و از آن نگهداری كرد. با این كار میتوان جداولی را كه مرتباً مورد رجوع كاربران قرار میگیرند هراز گاهی در قالب XML به داخل حافظه آورد و كاربران مذكور به جای رجوع به جداول اصلی در هارددیسك، با استفاده از دستورات ویژه جستجو درXML ، متغیر مذكور را در حافظه سرور مورد جستجو قرار دهند و بدینوسیله یك نوع عمل Cache كردن را جهت افزایش سرعت دسترسی به اطلاعات تكراری شبیهسازی كنند. در این حالت، كاربران به جای استفاده از دستورSELECT استاندارد میتوانند از OPEN XML كه در نسخه ۲۰۰۵ قادر است متغیرهای جدید از نوع XML را بخواند استفاده كرده و به سرعت به اطلاعات موردنیاز خود دسترسی پیدا كنند. این قابلیت جدید آنقدر در سریعتر كردن جستجو در برنامههای تحت وب مهم و مؤثر است كه جای هیچ مشكلی را در استفاده از آن باقی نمیگذارد.
. سرویس اعلان (Notification)
همانطور كه گفتیم سیستم اعلان درSQLServer قادر است پیغامهایی را طی زمانهای مشخص به سمت كاربران بفرستد. مثلاً تصور كنید كه تعدادی كاربر در حال اتصال به یك بانك حاوی اطلاعات مربوط به ارزش سهام در بورس هستند. از آنجایی كه ممكن است قیمت سهام هر شركت یا مؤسسه برای تعدادی از كاربران از اهمیت زیادی برخوردار باشد، میتوان این سیستم را طوری تنظیم كرد تا هرگاه ارزش سهام خاصی كه موردنظر هر كاربر است تغییر كرد، به صورت اتوماتیك به وی اعلام شود. كاربر هم میتواند این تغییرات را برروی برنامه كاربردی خود، تلفن همراه (در قالب Windows Messenger ،(SMS و یا ایمیل بهصورت مرتب دریافت و مشاهده كند.
ایران مسعود پزشکیان دولت چهاردهم پزشکیان مجلس شورای اسلامی محمدرضا عارف دولت مجلس کابینه دولت چهاردهم اسماعیل هنیه کابینه پزشکیان محمدجواد ظریف
پیاده روی اربعین تهران عراق پلیس تصادف هواشناسی شهرداری تهران سرقت بازنشستگان قتل آموزش و پرورش دستگیری
ایران خودرو خودرو وام قیمت طلا قیمت دلار قیمت خودرو بانک مرکزی برق بازار خودرو بورس بازار سرمایه قیمت سکه
میراث فرهنگی میدان آزادی سینما رهبر انقلاب بیتا فرهی وزارت فرهنگ و ارشاد اسلامی سینمای ایران تلویزیون کتاب تئاتر موسیقی
وزارت علوم تحقیقات و فناوری آزمون
رژیم صهیونیستی غزه روسیه حماس آمریکا فلسطین جنگ غزه اوکراین حزب الله لبنان دونالد ترامپ طوفان الاقصی ترکیه
پرسپولیس فوتبال ذوب آهن لیگ برتر استقلال لیگ برتر ایران المپیک المپیک 2024 پاریس رئال مادرید لیگ برتر فوتبال ایران مهدی تاج باشگاه پرسپولیس
هوش مصنوعی فناوری سامسونگ ایلان ماسک گوگل تلگرام گوشی ستار هاشمی مریخ روزنامه
فشار خون آلزایمر رژیم غذایی مغز دیابت چاقی افسردگی سلامت پوست