تغییر بانک اطلاعاتی MS SQL SERVER

تغییر گزینه های بانک اطلاعاتی MS SQL SERVER

Sql سرور اکسپرس هر بانک اطلاعاتی جدید را برا اساس بانک MODEL بنا میکند. هر بانک اطلاعاتی در آغاز همان مجموعه گزینه ها و رفتارهای یانک اطلاعاتی مدل را خواهد داشت. گاهی اوقات میبایست این گزینه ها را تغییر دهید. در قسمت های ذیل به بررسی تغییر گزینه های بانک اطلاعاتی میپردازیم


براي دسترسي به پنجره خصوصيات بانک اطلاعاتي به صورت زير عمل کنيد.

  1. Managment Studio را باز گنيد.
  2. در پنجره Object Explorer گره Database را باز کنيد و بر روي نام باک اطلاعاتي مورد نظر کليک راست کنيد. در منوي باز شده گزينه Properties را انتخاب کنيد.
  3. در پنجره باز شده ( Database Properties ) بر روي گزينه Option در کادر Select a page ( بالا و سمت چپ پنجره ) کليک نماييد.

گزينه هاي پيکربندي بانک اطلاعاتي در MS SQL SERVER

 تعيين گزينه هاي بانک اطلاعاتي

Auto Close : وقتي کاربري به يک بانک اطلاعاتي متصل ميشود ، آن بانک بايد باز باشد. زماني که يک بانک اطلاعاتي باز است از منابع سيستمي از جمله RAM و زمان CPU استفاده ميکند. وقتي مقدار TRUE براي اين گزينه انتخاب ميشود ، به محض آنکه کاربر ارتباطش را قطع ميکند بانک اطلاعاتي بسته ميشود. چون معمولا منابع فراواني در دسکتاپ ها وجود دارد ، مقدار پيش فرض TRUE براي اين گزينه انتخاب ميشود. بدين ترتيب وقتي يک بانک اطلاعاتي در دست استفاده نباشد ، فورا بسته ميشود.

Auto Create Statistics : به محض آنکه پرس و جويي اجرا ميشود ، بهينه ساز پرس و جوها ، به منظور تعيين سريعترين روش جهت بازگرداندن نتايج وارد عمل ميشود. بهينه ساز اين کار را از طريق خواندن آمار درباره هر يک از ستونهاي مطرح در فرمان SELECT انجام ميدهد. اگر مقدار TRUE براي اين گزينه انتخاب شود ، SQL سرور اکسپرس به طور خودکار اين آمار را براي هر ستوني که بخشي از شاخص هاست آماده ميکند. اگر مقدار False براي آن اتخاب شود ، آمار ها را خودتان بايد تهيه کنيد.

Auto Shrink : اس کیو ال سرور اکسپرس بانک های اطلاعاتی را بطور متناوب اسکن میکند تا مشخص شود که بیش از 25 درصد فضای آزاد دارند یا خیر.وقتی مقدار True این گزینه انتخاب میشود،SQL سرور میتواند فضای آزاد را به 25 درصد کاهش دهد. بهتر است مقدرا پیش فرض را برای گزینه باقی بگذارید،چرا که فرایند فشرده سازی خودکار میتواند موجب مصرف منابع در سرور شود،و احتمالا تمایلی به هدر دادن فضای دیسک در کامپیوترهای دسک تاپ نخواهید داشت. به زودی با روش انجام ستی این کار آشنا خواهید شد . 

Auto Update Statistics : انتخاب مقدار True برای این گزینه به SQL سرور اکسپرس امکان میدهد تا آمارها را به طور خودکار به روز برساند.اگر مقدار False برای آن انتخاب شود،میبایست آمارها را به طور دستی بروز برسانید . اگر با کمبود متابع سیستمی(مثلا RAM یا زمان CP)مواجه هستید،میتوانید این گزینه را از حالت انتخاب خارج سازید. میتوانید طرحی برای نگهداشت بانک اطلاعاتی تدوین کنید تا این کار بر اساس زمانبندی مشخص انجام شود.

Cursor Close on Commit Enabled : در مواقعی که مجموعه نتایج بزرگ است، cursorها هر بار سطر واحدی از داده ها را برمیگردانند و بنابراین بازیابی داده ها سریعتر صورت میگیرد. اگر مقدار True را برای این گزینه انتخاب نمایید، cursorها به محض اعمال تراکنشها بسته میشوند. بهتر است مقدار False برای این گزینه باقی بماند تا cursorها تا زمان تکمیل شدن تمام تغییرات باز بمانند. در پایان میتوان cursor را به طور دستی بست .  

Default Cursor : وقتی مقدار Local برای این گزینه انتخاب میشود،هر cursor ایجاد شده نسبت به پروسیجر فراخوان خودش،محلی تلقی خواهد شد.این بدین معناست که تنها همان پروسیجر ایجاد کننده cursor میتواند از آن استفاده کند.اگر مقدار Global(پیش فرض) برای این گزینه انتخاب شود،سایر پروسیجرهای ارتباط جاری(با سرور)نیز میتوانند از cursor استفاده کنند.بنابراین،اگر Joe پروسیجر ذخیره شده ای را اجرا نماید که منجر به ایجاد cursor شود،در آن صورت سایر پروسیجرهایی که توسط Joe اجرا شوند نیز میتوانند از آن cursor استفاده نمایند.

ANSI NULL Defult : وقتی جدولی ایجاد میکنید ،میتوانید مشخص کنید که ستونهای آن میتوانند خالی باشند یا خیر-وضعیتی که اصطلاحا گفته میشود ستونها دارای مقدار null هستند.اگر هنگام ایجاد یا تغییر یک جدول مشخص نکنید که ستونها میتوانند خالی باشند،و چنانچه مقدار این گزینه False باشد،در آن صورت تخصیص مقدار Null به ستونها را نیز هنگام ایجاد یا تغییر جدول مجاز نخواهد بود.اگر مقدار این گزینه True باشد و تخصیص مقدار null به ستونها را نیز هنگام ایجاد یا تغییر جدول مجاز کرده باشید،در آن صورت ستونهای مورد نظر نیز مقدار null باشند،در آن صورت بهتر است مقدار پیش فرض False را برای این گزینه باقی بگذارید.

ANSI Nulls Enabled : وقتی مقدار True برای این گزینه انتخاب میشود،انجام هر گونه مقایسه با مقدار null منجر به NULL میشود. اگر مقدار False انتخاب شود،مقایسه داده های غیر یونی کد با مقادیر null منجر به False،و مقایسه مقادیر null با null نیز منجر به True میشود. مقدار پیش فرض آن False است.

ANSI Padding Enabled : این گزینه روش ذخیره سازی مقادیر کوچکتر از اندازه یک ستون را کنترل میکند. اگر مقدار آن True باشد،در آن صورت کارکترهایی به ستونهای نوع char(n) NULL ، char(n) NOT NULL و binary(n) NULL اضافه میشوند،و لیکن چیزی به ستونهای نوع varchar(n) و varbinary(n) اضافه نشده و داده های انتهایی نیز برش داده نمیشوند. اگر مقدار این گزینه False باشد،در آن صورت کارکترهایی به ستونهای نوع varbinary(n) و varchar(n) NULL, binary(n) NULL,char(n) NULL اضافه نشده و داده های انتهایی نیز برش داده نمیشوند.

ANSI Warnings Enabled : اگر مقدار False برای این گزینه انتخاب شود و بخواهید عددی را بر صفر تقسیم تقسیم نموده و یا از null در یک معامله چیزی استفاده کنید،SQL سرور اکسپرس مقدار null را برمیگرداند و هیچ خطایی نیز رخ نمیدهد اما اگر مقدار آن True باشد،پیام هشدار دهنده ای را مشاهده خواهید نمود.مقدار پیش فرض آن False است.

Arithmetic Abort Enabled : این گزینه برای SQL سرور اکسپرس مشخص میکند که هنگام بروز خطای سرریز یا تقسیم بر صفر،چگونه عمل کند.اگر مقدار آن True باشد،کل پرس و جو یا تراکنش لغو میشود.اگر مقدار False برای آن انتخاب شود،اجرای پرس و جو یا تراکنش ادامه یافته و پیام هشداردهنده ای نمایش میشود.

Concatenate Null Yields Null : روند ادغام رشته ها،چندین رشته را با استفاده از عملگر+ترکیب نموده و به یک رشته تبدیل میکند.به عنوان مثال،Hello my name + is Joe،منجر به یک رشته واحد به صورت "Hello my name is Joe "،میشود.اگر مقدار این گزینه True باشد و بخواهید عمل Hello my name + NULL را انجام دهید،نتیجه عمل null خواهد بود.اما اگر مقدار این گزینه False باشد و بخواهید عمل مذکور را انجام دهید،نتیجه آن Hello my name خواهد بود.مقدار پیش فرض آن true است.

Cross Database Ownership Chaining Enabled : مالک هر شی تمام مجوزها را دارد.اگر شخص دیگری از شی استفاده میکند،در آن صورت میبایست از مالک آن مجوز داشته باشد.آن شخص سپس در صورت داشتن مجوزهای لازم میتواند شی را به شخص دیگری قرض بدهد.چنانچه مقدار این گزینه true باشد بانک اطلاعاتی میتواند مبدا یا مقصد زنجیره مالکیت باشد.

Data Correlation Optimization Enabled : این گزینه جدید تعیین میکند که وقتی ستونها مرتبط کننده جداول(از طریق کلید خارجی)از نوع datetime هستند،SQL سرور اکسپرس آمارهای ارتباطات بین جداول را نگهداری کند یا خیر.چنانچه مقدار این گزینه true باشد،SQL سرور اکسپرس این آمارها را نگهداری میکند.

Numeric-Round-Abort : این گزینه تعیی میکند که بانک اطلاعاتی با خطای گرد کردن چگونه برخورد کند. اگر مقدار آن True باشد ، اس.کس.ال سرور به محض از دست رفتن بخشی از دقت عدد، خطایی را اعلام میکند و چنانچه مقدار آن False باشد هیچ خطایی حاصل نشده و مقدار مورد نظر با توجه به دقت متغیر یا ستون مربوطه گرد میشود.

Parameterization : چنانچه مقدار این گزینه simple باشد Sql اکسپرس هنگام تعیین پارامترهای پرس و جو از رفتار پیش فرض بانک اطلاعاتی تبعیت میکند. برای انکه برای تمام پرس و جوهای بانک اطلاعاتی از پارامترها استفاده شود مقدار Forced را به آن تخصیص دهید.

Quoted Identifires Enabled : چنانچه بخواهید از کاراکتر فاصبه در نام جدول ها یا کلامات رزرو شده استفاده کنید عموما میبایست آنها را در بین کروشه بنویسید. چنانچه مقدار True را برای این گزینه انتخاب کنید در آنصورت میتوانید از علائم نقل و قول جفتی نیز استفاده کنید.

Recursive Triggers Enable : تریگرها همچون سگهای نگهبان جداول هستند. وقتی شخصی داده هایی را درج یا حذف میکند و یا به روز رسانی میکند ، تریگرها جهت اعمال قوانین کاری منحصر به فرد فعال میشوند. چنانچه مقدار این گزینه true باشد تریگرهای میتوانند سایر تریگرهای را فعال کنند.

Trustworthy : با استفاده از این گزینه کنترل کنید که توابع و پروسیجرهای ذخیره شدهای که توسط کاربر تعریف شده اند به منابع خارج از بانک اطلاعاتی دستیابی داشته باشند یا خیر.

Page Verify : اس کیو ال سرور در صورت خرابی سخت افزار یا قطع برق ممکن است نوشتن داده ها را در دیسک متوقف کند. این وضعیت خطای I/O نامیده میشود و منجر به خرابی بانک اطلاعاتی میشوداین گزینه سه روش برای برطرف کردن خرابی ها در اختیارتان میگذارد :

  • Checksum این گزینه پیش فرض سبب ایجاد یک مقدار Checksum برای کل صفحه داده ها میشود و آنرا هنگام نوشتن محتوای صفحه در دیسک، در هدر صفحه ذخیره میکند. وقتی در اینده آن صفحه از دیسک خوانده میشود این مقدار مجددا محاسبه شده و با مقدار ذخیره شده در هدر مقایسه میشود. اگر هردوی آنها یکسان باشند در ان صورت محتوی صفحه قابل اطمینان خواهد بود و در غیر اینصورت قابل اطمینان نخواهد بود. این گزینه آخرین خطاهای صفحه را مشخص میکند.
  • TornPageDetection وقتی صفحه ای در دیسک ذخیره میشود ، این گزینه بیتی را به طروت معکوس برای هر سکتور 512 بایتی در هدر صفحه مینویسد. وقتی صفحه در اینده خوانده میشود چنانچه این بیت در وضعیت قبلی نباشد ، در انصورت مشخص میشود که محتوی صفحه نادرست است. در شرایطی که خطاهای دیسک عموما ناشی از چند تکه شدن است باید از این گزینه استفاده کنید.
  • None این گزینه مشخص میکند که وقتی صفحه از دیسک خوانده شده است و یا در آن نوشته میشوند هیچ عملی انجام نگیرد.

Datebase Read-only : این گزینه سبب فقط خواندنی شدن بانک اطلاعاتی میشود این گونه بانک های اطلاعاتی به خاطر عملیات داخلی خود سریعتر از بانکهای اطلاعاتی معمول هستند و برای بانکهایی مناسب هستند که به ندرت تغییر میکنند ماننده بانک های اطلاعاتی آرشیو.

Database State : این گزینه غیر قابل وضعیت بانک اطلاعاتی را نمایش میدهد. مقادیر متداول آن به صورت زیر است

  • Emergency این گزینه نشان میدهد که مدیر سیستم بانک اطلاعاتی را برای مقاصد عیب یابی در مد Emergency قرار داده است. بانک اطلاعاتی در این مد فقط خواندنی خواهد بود و برقراری ارتباط غیر فعال خواهد شد و تنها مدیران بانک اطلاعاتی توانایی دستیابی به بانک را خواهند داشت.
  • Inaccessible این مقدار نشان میدهد که سرور محل نگهداری بانک اطلاعاتی غیر فعال شده و از طریق شبکه قابل دستیابی نیست.
  • Normal نشان میدهد که همه چیز به خوبی در حال اجرا است.
  • Offline این مقدار نشان میدهد که بانک اطلاعاتی بسته شده و قابل تغییر نیست.
  • Syspect این مقدار مشخص میکند که بانک اطلاعاتی دارای مشکل است و احتمالا باید بررسی و از طریق نسخه پشتیبان احیا شود.

Restrict Access : این گزینه امکان کنترل کاربرانی که میتوانند به بانک اطلاعاتی دستیابی داشته باشند را فراهم میسازد. سه مقدار متصور برای آن به صورت زیر است

  • Multiple این مقدار پیش فرض امکان دستیابی تمامی کاربران دارای مجوز را فراهم میکند.
  • Singel در هر لحظه تنها یک کاربر میتواند با بانک کار کند. این کاربر میتواند هر کسی باشد اما چون این شما هستید که مقدار گزینه را تعیین میکنید آن نفر خودتان هستید. این گزینه را باید درست پیش از احیا یا تغییر نام بانک اطلاعاتی تعیین کنید. چرا که هیچ کس دیگر از جمله سایر اعضای نقش db-owner نباید در طی این فعالیت از بانک اطلاعاتی استفاده کنند.
  • Restricted وقتی این مقدار برای بانک اطلاعاتی انتخاب میشود ، تنهای اعضای db-owner , dbcreater و Sysadmin میتوانند به بانک دسترسی داشته باشند. ارتباط سایر اشخاصی که در حال کار کردن هستند قطع نخواهد شد اما هیچ یک از آنها پسش از قطع ارتباط با بانک دیگر مجاز به برقرای ارتباط نخواهند بود. از این گزینه طی مراحل اولیه ایجاد و توسعه بانک اطلاعاتی و یا هنگام تغییر ساختار یکی از این شی ها استفاده نمایید. مثلا هنگام افزودن ستون به یکی از جدول ها.

توجه : مایکروسافت این تنظیمات را به خاطر نیاز و یا عدم نیاز به آنها انتخاب نکرده است. ملاحظات دقیق و سالها تجربه موجب رسیدن به تنظیمات پیش فرضی شده است که پاسخگوی بیشتر فعالیتهای معمول میباشد. تنظیمات پیشفرض را تنها در صورت داشتن دلایل مشخص تغییر دهید.

منبع : کتاب راهنمای جامع SQL SERVER -انتشارات کانون نشر علوم - ترجمه : فرهاد قلی زاده نوری - فصل دهم - صفحه 266 تا 272

گروه طراحی سایه مطالعه کتابهای منتشر شده توسط کانون نشر علوم را به علاقه مندان برنامه نویسی و کار با پایگاه داده توصیه میکند.