اندازهی قلم متن
تخمین مدت زمان مطالعهی مطلب:
دو دقیقه
با تکامل SQL server و بهبودهای حاصل شده، یک سری از ویژگیهای موجود صرفا جهت حفظ سازگاری با نگارشهای قبلی ارائه میشوند. لیست کامل آنها را در آدرس زیر میتوان مشاهده نمود:
Deprecated Database Engine Features in SQL Server 2008
لیست بلند بالایی است. اما در یک محیط کاری، نوعهای زیر از سایر موارد ذکر شده بیشتر مورد استفاده قرار میگیرند:
منسوخ شدهها: text ، ntext و image . جایگزینها : varchar ، nvarchar و varbinary از نوع max دار
عموما علت استفاده از نوعهای text یا ntext (نمونه یونیکد text) ، مشخص نبودن تعداد کاراکتری است که کاربر قرار است وارد کند. برای مثال یک سایت خبری ایجاد کردهاید و طول محتوای خبر ثبت شده در بانک اطلاعاتی از یک خبر به خبر دیگر کاملا متفاوت است. در اینجا برای حل این مشکل از نوعهای text یا ntext استفاده میشد (این مورد تا اسکیوال سرور 2000 توصیه میشود).
varchar max تا 2,147,483,648 کاراکتر را میتواند ذخیره کند، یعنی تا 2 GB و nvarchar max تا نصف این مقدار را. در اس کیوال سرور 2000 محدودیت 8000 کاراکتر برای نوع vrachar وجود داشت (و نوع nvrachar تا 4000 کاراکتر).
مزایای استفاده از نوعهای max دار (از اس کیوال سرور 2005 به بعد) :
- بهبود کارآیی کوئریهای جستجو نسبت به نوعهای Text
- اگر مطلب تشخیص کمبود ایندکسها را دنبال کرده باشید، در آنجا ذکر شد که در قسمت included columns نمیتوان از text و ntext استفاده کرد اما نوعهای max دار متنی مجازند.
- امکان استفاده از فیلدهای max دار برای مرتب سازی کوئری مجاز است. (به شخصه با این مورد زیاد برخورد داشتم. برای مثال امکان سورت کردن یک گرید را در ASP.Net فراهم کردهاید و کاربر با کلیک بر روی سر ستون فیلدی از نوع ntext با یک خطا متوقف خواهد شد)
- امکان استفاده از نوعهای Text بهعنوان متغیر در رویههای ذخیره شده یا توابع T-SQL مهیا نیست اما این محدودیت در نوعهای max دار برطرف شده است.
- نوعهای text را در توابع REPLACE ، CHARINDEX و SUBSTRINGنمیتوان بکار برد (برخلاف نوعهای متنی max دار).
Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
بعد از این تغییر به سادگی میتوان عملیات ارتقاء را بدون نگرانی از بروز خطای فوق انجام داد.