سيستم آگاه سازی caching  در SQL Server 2000 و  SQL Server 2005
سيستم آگاه سازی caching در  SQL Server 2005  وضعيت بمراتب بهتری را نسبت به SQL Server 2000 پيدا كرده است . چراكه زيرساخت سيستم فوق از طريق يك سيستم ارسال و دريافت پيام موسوم به Service Broker  در بانك اطلاعاتی تعبيه شده است .
Service Broker  يكی از ويژگی های جديد ارائه شده در SQL Server 2005  است . سيستم فوق ، در واقع يك فريمورك ارسال و دريافت پيام توزيع شده را ارائه  می نمايد . با استفاده از ويژگی فوق می توان قابليت های متعددی را به بانك اطلاعاتی اضافه نمود . Service Broker از سيستم ذخيره سازی صف ( FIFO ) استفاده می نمايد و يك لينك ارتباطی بين ارسال كننده پيام و دريافت كننده پيام ايجاد می نمايد . سيستم فوق مديريت صف ها را برعهده داشته و شامل اشياء بانك اطلاعاتی نظير جداول ، view و  stored procedure می باشد .
پياده كنندگان  با استفاده از دستور  CREATE EVENT NOTIFICATION می توانند به SQL Server 2005  آموزش دهند كه در صورت بروز رويدادهائی خاص اطلاعات لازم را برای سيستم آگاه سازی caching ارسال نمايد .
ASP. NET از يك زاويه ديگر به اين موضوع نگاه می كند . پس از مشخص شدن يك query ، فناوری ASP. NET بطور اتوماتيك به SQL Server 2005  اعلام می نمايد كه اطلاعات آگاه سازی را برای هر نوع عملياتی كه می تواند بر روی نتيجه query تاثيرگذار باشد ارسال نمايد . هر مرتبه كه يك عمليات خاص انجام شود ، SQL Server مشخص می نمايد كه آيا اين عمليات می تواند يك دستور ريجستر شده را تحت تاثير قرار دهد و يا خير ؟ در صورتی كه عمليات انجام شده بتواند بر روی يك دستور ريجستر شده تاثيرگذار باشد ، SQL Server يك پيام آگاه سازی را ارسال و فرآيند آگاه سازی را متوقف می نمايد .
سيستم آگاه سازی Caching در SQL Server 2005  نسبت به SQL Server 2000  دارای مزايای متعددی است :

  • آگاه سازی بر اساس جزئيات بيشتری از اطلاعات  . در مقابل غيرمعتبر سازی شی cache شده در زمان بروز تغييرات در يك جدول ، SQL Server 2005 صرفا” يك شی را زمانی غيرمعتبر می كند كه عملياتی نظير درج ، بهنگام سازی و حذف بر روی سطر مورد نظر انجام شده باشد .
  • عدم ضرورت انجام عملياتی خاص برای پيكربندی و آماده سازی سيستم آگاه سازی . برای بهره برداری از سيستم آگاه سازی caching  در SQL Server 2005 ضرورتی به اجرای برنامه خط دستوری aspnet_regsql و يا ذخيره تنظيمات pooling در فايل web.config  وجود ندارد .

سيستم آگاه سازی فعاليت خود را بر اساس يك  SELECT query و يا stored procedure آغاز  می كند . در چنين مواردی ، استفاده از SELECT query محدوديت های مختص به خود را داشته و از قوانين زير تبعيت می نمايد :

  •  برای اجرای query بر روی يك جدول می بايست نام آن به صورت   Owner].table ] مشخص گردد . به عنوان نمونه  dbo.Employees   ( صرفا” نمی بايست نام جدول   Employees آورده شود . )
  • در query مورد نظر نمی بايست از توابعی نظير  Conut  ، MAX ، MIN و يا AVERAGE استفاده گردد .
  • نمی توان با استفاده از wildcard تمامی ستون ها را انتخاب نمود ( نظير  SELECT * FROM Employees  ) . در مقابل ، می بايست نام هر ستون دقيقا” مشخص گردد تا SQL Server بتواند تغييرات آنها را پيگيری و آندسته از ستون هائی را كه در نتيجه query تاثيرگذار هستند تشخيص دهد .

شكل صحيح استفاده از دستور Select  به صورت زير است .

SELECT EmployeeID, FirstName, LastName, City FROM dbo.Employees

موارد فوق مهمترين قوانين موجود در اين رابطه می باشند و  مجموعه كامل تری را می توان بر روی msdn مشاهده نمود . در صورت عدم رعايت يكی از قوانين اشاره شده با يك پيام خطاء مواجه نخواهيم شد و در عمل سيستم آگاه سازی caching وظايف خود را به درستی انجام نخواهد داد . توجه داشته باشيد كه پيام آگاه سازی بلافاصله پس از ريجستركردن دستور ، ارسال و آيتم cache شده غيرمعتبر می گردد .

دسته بندی : افزایش درآمد سایت