شاخصهای دسته ای برای فیلدهای کلید اولیه در نرم افزار SQL server پیش فرض می باشند . که گفته میشود چندین فاکتور درمورد انواع داده ها مهم هستند . برای این بحث، ما فرض می کنیم کلید اولیه شما شبیه شاخص دسته ای است چون آن دیدگاهی برتر می باشد.
هر نوع داده ای که شما برای کلید اولیه تعیین می کنید (معمولا شاخص دسته ای) شامل هر شاخص غیر دسته ای بصورت ارجاعی همانند بازگشت به ردیف اولی است .
برای مثال اگر شما نوع داده ای تاریخ و ساعت را نسبت به نوع عدد صحیح به عنوان کلید اولیه تعیین کنید هر یک از شاخصهای غیر دسته ای افزوده ای چهار بایت بیشتر در هر ردیف خواهد بود زیرا شاخص غیر دسته ای باید مقدار کلید اولیه را در خود نگه دارد. در جداولی با بیش از دو بیلیون ردیف، این سریعا می تواند بیش از 4.2 گیگا بایت را در هر شاخص غیر دسته ای افزایش دهد. شما تاثیری را روی CPU ،ورودی، خروجی و RAM مشاهده خواهید کرد که سریعا در این سناریو انباشته خواهند شد .
ملاحظاتی درمورد انواع خاص داده ها
در حال حاضر ما در اینجا از انواع داده های بد استفاده شده صرف نظر می کنیم .
معمولا به هنگام ذخیره کردن مقدار تاریخ و ساعت، هرکس به عنوان پیش فرض در نظر می گیررد نوع داده های datetime را بدون توجه به smalldatetime . نوع داده ای datetime بصورت دو عدد صحیح ذخیره میشود با دقت معادل 3.33 میلی ثانیه از یک ژانویه 1753 تا سی و یک دسامبر 9999. با این وجود، برای بسیاری از عملیات بانک اطلاعاتی، اینگونه محدوده و عدد و رقم دقیق ضروری نیست. نوع داده های smalldatetime بصورت یک عدد صحیح ذخیره میشود دقیق معادل یک دقیقه و در حد فاصل یک ژانویه، 1900 تا شش ژانویه، 2079.
وقتی که نباید نیازهای دقیق به ثانیه و میلی ثانیه محدود شوند و تاریخها معمولا به رنجهای تاریخی در طول چند دهه محدود گردند، بسیاری از مقادیر datetime می توانند بصورت smalldatetime ذخیره شوند. فواید استفاده از smalldatetime مشهود هستند چون در فضای 50 درصدی ذخیره میشوند، یک جدول بسیار سودمندتر است . برای کلید اولیه نباید نوع داده های datetime استفاده شوند مگر اینکه جستجوهای مکرری در محدوده های تاریخی انجام شود .
یک بیت به اندازه یک بایت فضا اشغال می کند، همچنین هشت بیت یک بایت فضا اشغال می کند و یک کاراکتر نیز یک بایت فضا می گیرد . اینگونه استدلال میشود که استفاده از یک کاراکتر برای نوع داده های بله، خیر خواناتر است اما اگر جدول دارای بیش از یک ستون بیت باشد، استفاده از یک ستون بیت خیلی موثرتر می باشد. شما همچنین امکان فرد را که قصد دارد یک حرف a b c بکار برد را از بین می برید . در فیلد یک کاراکتری، که به داده و کارائی غلط منجر میشود . بطور کلی، بکار بردن نوع داده بیت روش بهتری به نظر می رسد . اگرچه جدول صرفا دارای یک ستون بیت است، به شما این امکان را می دهد که ستونهای بیت دیگری را خودتان در آینده اضافه نمایید. به منظور سوء استفاده از شکل ذخیره سازی بهینه داده ها، هیچگونه نیازی به تغییر و اصلاح نوع داده و داده ها در ستون کاراکتر وجود ندارد.
انواع اعداد صحیح عبارتند از : عدد صحیح خرد0-255، (1 بایت)، عدد صحیح کوچک (-32،768-32،767،2 بایت) ، عدد صحیح 2،147،483،648-2،147،483،647) 4 بایت( و عدد صحیح بزرگ ) 9،223،372،035،854،775،808-9،223،372،036،854،775،807، 8 بایت).
این اعداد صحیح اغلب در کلیدهای اولیه و شاخصهای غیر دسته ای بکار می روند بنابراین، انتخاب کوچکترین نوع داده های موجود از لیست بسیار مهم است .
فقط انتخاب یک نوع داده بزرگ در نرم افزار SQL server وسوسه انگیز است، اما این کار برای برنامه ریزی کردن روی نیازهای ضروری در پنج تا ده سال آینده بهتر است . پس هنگامی که CPU ها، ورودی، خروجی و RAM پهنای باند بیشتری برای پشتیبانی از انواع بزرگتر داده ها دارند، شما همواره می توانید نوع داده را به یک نوع داده بزرگ تبدیل کنید .
مترجم : علی اکبر حاتمی