
مدتي از انتشار نسخه 2012 ه SQL Server با كد نام Denali ميگذره در اين پست قصد دارم چنديدن ويژگي جديد اين نسخه رو معرفي كنم.ضمنا دريافت اين نسخه و تبديل اون به نسخه نهايي رو از اين پست ميتونيد پيگيري كنيد.
AlwaysOn : يكي از مهمترين ويژگيها در SQL Server 2012 در بحث High Availability يا در دسترس بودن هست و در واقع تكميل كننده Database Mirroring در نسخه هاي قبلي ميباشد.در Mirroring ما به صورت تك تك ديتابيس هامون رو ميرور ميكنيم ولي در AlwaysOn اينكار به صورت گروهي انجام ميشه يعني چندين ديتابيس و همچنيا ميتونيم دو روش همزمان (Synchronous) و غير همزمان (Asynchronous) رو با هم تركيب كنيم.بر خلاف ميرورينگ ديتابيس ما به صورت فقط خواندني قابل كوئري گرفتنه و حتي بكاپ گرفتن.
نكته:در نسخه هاي قبلي با گرفتن Snapshot از ديتابيس Mirror ميتوان به صورت فقط خواندني از ديتابيس استفاده كرد و ...

SSMS، تسک ویزارد Import را، که می توانید برای کپی کردن داده ها از منبعی به منبع دیگر استفاده کنید، در اختیار می گذارد. می توانید از میان چندین گونه منبع و انواع منبع داده های مقصد، یکی را انتخاب کنید، جداولی را برای کپی کردن انتخاب کنید، یا کوئری خودتان را برای extract کردن داده ها مشخص کنید، و کارتان را بصورت پکیج SSIS ذخیره کنید. در این بخش مروری خواهیم کرد بر Import Wizard و داده ها را از Excel spreadsheet به جدولی در دیتابیس SQL Server ایمپورت می کنیم.

ما دو نوع شرينك كردن داريم
يه سري مفاهيم اوليه در شرينك هست كه در هر دو نوع شرينك ثابته اول اين مفاهيم رو مرور كنيم.
وقتي فايل هاي ديتابيس ميخوان بزرگ بشن بر اساس Autogrowth ي كه ست كرديد اون مقدار مورد نظر براي اطمينان از نداشتن بد سكتور بايد zero byte فرمت بشه حال فرض كنيد رشد بانك به صورت درصدي باشه (كه به صورت پيشفرض هست) و ديتابيس شما گيگا بايتي باشه چه حجم زيادي بايد zero byte فرمت بشه و اين يعني افت Performance. البته خبر خوب اينه كه عمل بزرگ شدن فايل از SQL Server 2005 به بعد فقط براي ديتا فايل با zero byte فرمت انجام نميشه (Instant File Initialization).همه اينا رو گفتم تا برسم به اينجا كه بزرگ شدن فايل يه عمليات زمانبريه پس اگه شما از نظر حجم Storage مشكلي نداريد تا جاي كه امكان داره فايلهاي ديتابيستون رو شرينك نكنيد.

SSMS، تسک های ویزارد Import و Export را، که می توانید برای کپی کردن داده ها از منبعی به منبع دیگر استفاده کنید، در اختیار می گذارد. می توانید از میان چندین گونه مختلف منبع و منبع داده های مقصد، یکی را انتخاب کنید، جداولی را برای کپی کردن انتخاب کنید، یا کوئری خودتان را برای extract کردن داده ها مشخص کنید، و کارتان را بصورت پکیج SSIS ذخیره کنید. استفاده از ویزارد Import و Export، نقطه شروع خوبی برای یادگرفتن پکیج های SSIS است. می توانید پکیج های جنریت شده SSIS را به این صورت اجرا کنید: آنرا زمان بندی کنید بعدا، اجرا شود، یا هر تغییری را که برای برآورده کردن نیازهایتان نیاز است، روی آن ایجاد کنید.

شرکت مایکروسافت نسخه ماقبل نهایی یا RC نرم افزار SQL Server 2012 را در دسترس علاقهمندان قرار داده است.
علاقمندان می توانند این نسخه را به رایگان بارگذاری و آزمایش کنند و ضعف ها و مشکلات احتمالی آن را به شرکت مایکروسافت گزارش دهند.

SQL Server Integration Services - SSIS - یک مولفه از سیستم پایگاه داده Microsoft SQL Server است که می تواند رنج وسیعی از کاربردها و وظایف data migration را پوشش دهد. SSIS یک پلتفرم برای انجام data intergration و workflow application ها به حساب می آید. SQL Server Integration Services ابزارهای سریع و با انعطاف data warehousing جهت انجام data extraction ، transformation و loading - اصطلاحا ETL - در اختیار کاربر قرار می دهد. این ابزار می تواند برای خودکار سازی نگهداری از پایگاه داده های SQL Server و بروزرسانی cube data چند بعدی نیز مورد استفاده قرار بگیرد.

اگر اخبار مربوط به SQL Server وب سايت را دنبال كرده باشيد، طي خبر اول پيش بيني شده بود كه نسخه بعدي اين محصول سال 2011 ارائه شود. آخرين خبر نيز اعلام انتشار نسخه CTP3 محصول بعدي تحت نام كد Denali بوده است.
مايكروسافت طي رخداد PASS Summit 2011 كه هفته پيش در سياتل برگزار شد، عنوان و تاريخ انتشار نسخه بعدي اس كيو ال سرور را عنوان كرد. SQL Server 2012 نام رسمي اين محصول خواهد بود كه تاكنون تحت نام كد Denali شناخته مي شد. تاريخ انتشار آن نيز نيمه اول سال 2012 اعلام شده است.

برای رانندگی، به شناخت کامل جزئیات موتور و نحوه عملکرد آن نیازی نیست، اما شناخت بهتر عملکرد موتور میتواند به رانندگی بهتر و سریعتر کمک کند، به همین شکل نیازی نیست که عملکرد SQL Server را هنگام اجرای یک کوئری بدانیم، اما شناخت نحوه عملکر داخلی SQL Server میتواند به ما در نوشتن دستورات بهینه تر کمک کند.
هنگامی که دستوری به SQL Server ارسال میگردد، موتور SQL Server آن دستور را به مراحل قدم های کوچکتری تقسیم میکند. هنگام بررسی کوئری ها مطالب مختلفی در نظر گرفته میشوند، مانند ساختار جداول، وجود داشتن ایندکس ها و ...

SQL Server به منظور اطمینان از اینکه اطلاعات خوانده شدن، تغییر نخواهند کرد از مکانیزمی به نام Lock استفاده میکند. قفل ها این اطمینان را به ما میدهد که اطلاعاتی که در حال تغییر آنها هستیم، تحت تاثیر سایر تغییرات قرار نخواهد گرفت و اطلاعای که میخواهیم بخوانیم در حال تغییر به وسیله پردازش دیگری نیست. زمانی که در یک Connection جدولی قفل گذاری میشود، تا زمان آزاد شدن آن، سایر Connectionها اجازه قفل کردن و اعمال تغییرات روی آن جدول را به صورت همزمان ندارند.



SQL Server چهار جداول پیش فرض دارد که همراه با آن نصب میشوند. در ادامه به معرفی این چهار جدول میپردازیم.
Master دیتابیس:
مهم ترین پایگاه داده ای که همراه با SQL Server نصب میشود Master است و میتوان گفت قلب سیستم ما است. هر کاری که در سیستم انجام دهیم و هر شی که ایجاد میکنیم در این دیتابیس ثبت میشود. برای مثال اگر یک دیتابیس جدید ایجاد کنید، اطلاعاتی در sysdatabase ثبت میشود.حتی اگر یک Store Procedure ایجاد کنیم نیز در این پایگاه داده ثبت میشود. به علت حیاتی بودن این پایگاه داده توصیه میشود با این پایگاه داده کار انجام نشود و در صورتی که نیاز بود از سایر روش های جایگزینی که در اختیار ما قرار دارد استفاده کنیم. مثلا برای اطلاع از اشیای موجود در یک دیتابیس میتوانید در آن دیتابیس از sys.objects استفاده کرد.
MSDB:

سناریو / مشکل:
روي يك سرور هم نرم افزار ERP داريم و هم نرم افزار گزارش گيري چون نرم افزار گزارش گيري منابع بيشتري مصرف ميكنه نرم افزار ERP كه تو سازمان از اولويت بالايي برخوردارده كند ميشه
راه حل:
Resource Governor يك تكنولوژي جديد در SQL Server 2008 هست كه از طريق تعيين كردن محدوديت مصرف (استفاده) منابع ;بوسيله درخواست هاي ورودي به سرور بارهاي كاري(workloads) و منابع SQL Server رو مديريت میکنه.

خوب به خاطر دارم دورانی رو که سرمست پیشتازی SQL Server 2008 بودم و پیگیری مطالب جدیدش از نسخه بتا با عث شده بود تا بلافاصله بعد از عرضه نسخه RTM دوره آموزشی اش رو شروع کنم. هنوز چند جلسه از دوره شروع نشده بود که صحبت از نسخه ای با کد Kilimanjaro (کلیمانجارو) در مجامع و محافل تخصصی SQL در اینترنت به میون اومد و اینکه در این نسخه که بعدها SQL Server 2008 R2 نام گرفت بهبود 23% ی در حوزه ی کارایی و پشتیبانی از 256 پردازنده در مقابل 64 پردازنده ای که نسخه 2008 پشتیانی می کرد در حوزه Scale up و جندین قابلیت بدیع که خارج از موضوع بحث این پست می باشد…


اين سناريو رو در نظر بگيريد:
وب سرور ما در همان محلي قرار دارد كه SVN Server نصب شده است.
ميخواهيم به ازاي هربار Commit تيم به مخزن SVN ما، سايت ارائه شده توسط وب سرور نيز به صورت خودكار به روز شود.
چه بايد كرد؟!
احتمالا خيليها تصور ميكنند كه امكان پذير نيست؛ چون مخزن SVN موجود در سرور، ساختار خودش را دارد و همانند فايلهاي يك پروژه معمولي نگهداري نميشود.
براي انجام اينكار چندين روش موجود است، كه تمام آنها به مفهوم hooks در SVN گره خورده است. هرچند hook به معناي قلاب است، اما در اينجا معناي تريگر را دارد. شبيه به تريگرهاي SQL Server : پيش يا پس از انجام كار يا رخداد مشخصي، فلان كار را انجام بده. (براي اطلاعات بيشتر ميتوانيد به فصل hooks در اين كتابچه مراجعه كنيد: (+))
در ميان اين قلابهاي موجود، ميتوان از قلاب post-commit جهت به روز رساني يك سايت پس از هر هماهنگ سازي با مخزن SVN استفاده كرد. پيشنهاد من به تمام كساني كه ميخواهند كار با SVN را شروع كنند استفاده از برنامه رايگان Visual SVN Server است. اين برنامه سازگاري فوق العادهاي با محيط ويندوز دارد (از لحاظ تعريف سطح دسترسيها). همچنين تعريف hooks را هم به شدت ساده كرده است. فقط كافي است روي يك مخزن كد تعريف شده در
Visual SVN Server كليك راست كرده و در برگهي باز شده، تنظيمات سطوح دسترسي يا تعاريف Hooks را اضافه نمود (در اينجا اعمال سطوح دسترسي روي پوشهها يا روي فايلها نيز به همان شكل با كليك راست و كم و زياد كردن كاربران ميسر است؛ همانند دادن دسترسي بر اساس امكانات NTFS و اكتيودايركتوري).
