خانه SQL Server درون یک Page در SQL Server چه می گذرد؟ SQL Server نوشته شده توسط: میلاد فیروزی ۲۱ دی ۱۳۹۴ زمان مطالعه: 6 دقیقه ۵ (۱) در کل چند نوع Page در SQL Server داریم Data Page Index Page System Page همان طور که می دانید تمامی اطلاعات شما در SQL Server در Data Pageهایی به ظرفیت ۸ کیلوبایت ذخیره می گردند. SQL Server اطلاعات را سطر به سطر ذخیره می کند و خوب با احتساب این اطلاعات می توانید با توجه به تعریف جداولتان بفهمید در هر Page چند سطر از اطلاعات شما ذخیره می شوند ، به طور کلی هر چقدر تعداد سطرهایی که در یک Page ذخیره می شوند بیشتر باشد بهتر است چون SQL Server هر بازی که به سراغ یکی از Pageها می آید نمی تواند سطر خاصی را بخواند بلکه مجبور است تمام اطلاعات آن Page را بخواند ، در نتیجه هرچقدر سطرهای بیشتری در آن Page ذخیره شده باشند SQL با خواندن تعداد Pageهای کمتر اطلاعات بیشتری را می تواند واکشی کند و این نکته ایست که در طراحی جداول می تواند مورد بررسی قرار گیرد.یک Data Page همیشه از ۳ بخش تشکیل شده است. Page Header Payload Row Offset Array Page Header معمولا مستقل از نوع Page طولش ۹۶ بایت می باشد و اطلاعاتی نظیر Page Id و Object Id و … را در خود ذخیره می کند.هیجان انگیز ترین بخش Page قسمت Payload می باشد زیرا اطلاعات ما در این قسمت ذخیره می گردند.سرور از ۸۱۹۲ بایت کلی (۸ کیلوبایت) ۸۰۹۶ بایت برای این بخش در اختیار شما قرار می دهد و می توانید تعداد سطرهای ذخیره شده در یک Page را از همین ۸۰۹۶ بایت محاسبه کنید. و نهایتا در آخرین قسمت Row Offset Array را داریم ، Row Offset Array نیز بخشی از همان ۸۰۹۶ بایت می باشد و برای هر سطر از دیتا ۲ بایت ذخیره می کند که نشان می دهد رکورد شما در کجای Page قرار دارد ، شناسایی این بخش به Indexگذاری به شما کمک خواهد کرد.نمای کلی یک Page را در تصویر ذیل می توانید مشاهده کنید. بیایید یک جدول بسازیم ، CREATE TABLE Customers ( FirstName CHAR(50) NOT NULL, LastName CHAR(50) NOT NULL, Address CHAR(100) NOT NULL, ZipCode CHAR(5) NOT NULL, Rating INT NOT NULL, ModifiedDate DATETIME NOT NULL, ) GO با توجه به این تعریف و با توجه با اندازه ی هر ستون حال می توانیم به راحتی محاسبه کنیم در صر Page چند سط جا می شود ، ۲۲۶ = (۲ + ۵۰ + ۵۰ + ۱۰۰ + ۵ + ۴ + ۸ + ۷) خوب با تقسیم ۸۰۹۶ بر ۲۲۶ به عدد ۳۵.۶ می رسیم ، این یعنی در این Page حداکثر ۳۵ رکورد ذخیره خواهد شد و بقیه فضای باقی مانده خالی باقی خواهند ماند ، در بدترین حالت اگر اندازه جدول شما ۴۰۳۱ بایت شود شما ۴۰۲۹ بایت را هدر داده اید ، پس شناختن ساختار صفحات می تواند تا حدود بسیار زیادی به تعریف درست جداول شما و Performance نهایی دیتابیس شما کمک کند. با استفاده از Query زیر می توانید فضای هدر داده شده در Page توسط طراحی جدولتان را به دست آورید ، SELECT DB_NAME(database_id), SUM(free_space_in_bytes) / 1024 AS 'Free_KB' FROM sys.dm_os_buffer_descriptors WHERE database_id <> 32767 GROUP BY database_id ORDER BY SUM(free_space_in_bytes) DESC GO در پایان امیدوارم این مقاله باعث شود تا در طراحی جداول دیتابیس خود این اطلاعات را به کار برده نهایتا به Performance دیتابیس کمک کنید. چه رتبه ای میدهید؟ میانگین ۵ / ۵. از مجموع ۱ اولین نفر باش برچسب ها # Page# Page Header# Performance Tuning# Row Offset# SQL Server# آموزش SQL Server معرفی نویسنده مقالات 8 مقاله توسط این نویسنده محصولات 0 دوره توسط این نویسنده میلاد فیروزی پروفایل نویسنده معرفی محصول ایمان باقری دوره آموزشی کوئری نویسی در SQL Server 2.190.000 تومان مقالات مرتبط ۰۶ اردیبهشت SQL Server پایگاه داده برداری چیست؟ بررسی کاربردها، نحوه کار و آینده Vector Database تیم فنی نیک آموز ۰۲ اردیبهشت SQL Server تاثیر ایندکس های Computed-Column روی دستور DBCC CHECKDB تورج عزیزی ۲۶ فروردین SQL Server دستور SELECT TOP در SQL Server تیم فنی نیک آموز ۱۹ فروردین SQL Server راهنمای پیکربندی Authentication و Authorization در SQL Server به بهترین روش تیم فنی نیک آموز دیدگاه کاربران لغو پاسخ دیدگاه نام و نام خانوادگی ایمیل ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی مینویسم. موبایل برای اطلاع از پاسخ لطفاً مرا با خبر کن ثبت دیدگاه Δ