Programming languages
135 subscribers
202 photos
36 videos
49 files
249 links
A channel about all kind of programming languages, and their architectures and concepts.
Download Telegram
#SQLServer
#LogFile
سلام دوستان
امروز می خواهم مطالبی درباره Log File در SQL Server براتون در کانال نیک آموز قرار دهم.
همانگونه که اطلاع دارید هر بانک اطلاعاتی حداقل 2 فایل دارد که یکی از آنها Data File و دیگری Log File می باشد.
به فایل لاگ اصطلاحا Transaction Log File می گویند. SQL Server از این فایل جهت ثبت لاگ تغییرات بانک اطلاعاتی استفاده می کند. این تغییرات می توانند مربوط به اضافه شدن رکورد، ویرایش، حذف ، ساخت ایندکس و... باشند. بنابراین با این تفاسیر باید در نظر داشته باشید که این فایل حجم زیادی از دیتا را داخل خود ذخیره کرده و IO آن به شدت بالا است.
#SQLServer
#LogFile
نحوه ذخیره سازی داده ها در Log File به شکل Sequential (ترتیبی) می باشد. بنابراین در جهت افزایش سرعت و کارایی مربوط به این فایل توصیه می گردد که این فایل را در یک دیسک جداگانه، جدای از دیسک مربوط به Data File قرار دهید.
لازم به ذکر است هنگام جداسازی دیسک های مربوط به دیتا فایل و لاگ فایل باید تنظیمات مربوط به RAID را مد نظر داشت.
یکی از بهترین RAIDها برای Log File استفاده از RAID 10 می باشد در صورتیکه از لحاظ هزینه امکان تهیه این نوع RAID نیست می توانید از RAID 1 استفاده کرده و لاگ فایل را در آن RAID قرار دهید.
تصویر زیر RAID بهینه برای جدا کردن دیتا فایل و لاگ فایل را با حداقل هزینه در جهت افزایش کارایی بانک اطلاعاتی نمایش می دهد.
#SQLServer
#LogFile
معماری مربوط به لاگ فایل به دو صورت Physical و Logical می باشد.
معماری Physical این موضوع را می گوید که
درون لاگ فایل به یکسری Virtual Log File یا لاگ فایل مجازی تقسیم شده است که لاگ رکوردها در آن ثبت می شوند. به لاگ فایل مجازی اصطلاحا VLF می گویند.
معماری Logical این موضوع را می گوید که
هر لاگ رکوردی که در لاگ فایل ثبت می شود که شامل یکسری اقلام می باشد. هر کدام از این لاگ رکوردها برای خودشان یکسری LSN یا Log Sequence Number دارند. به ازای هر تراکنش (مثلا درج یک رکورد) ممکن است بیش از چند لاگ رکورد ثبت گردد که همه آنها با یک Transaction ID یکسان هستند و...
تصویر زیر VLFهای و Log Recordهای موجود در یک بانک اطلاعاتی را نمایش می دهد.