آموزش پیشرفته SQL Server (جلسه سوم) - آشنایی با File Table

آشنایی با File Table، قسمتی از آموزش پیشرفته SQL Server است، پیشنهاد می شود قبل از مطالعه ی آشنایی با File Table، قسمت های قبلی را مطالعه فرمایید.


File Tableچیست؟

هدف: یکپارچه کردن Database Engine با NTFS می باشد.

با استفاده از ترکیب FileStream و نوع داده Hierarchyid برای پیاده سازی ساختار پدر و فرزندی در File Table کمک زیادی به طراحی یک ساختار سلسله مراتبی نموده است. ساختار جدول مربوط به File Table از قبل تعریف شده است و ما قادر به تعریف و تغییر فیلدهای جدول آن نمی باشیم. برای دیدن ساختار کلی این جدول و فیلدهای مربوط به آن به آدرس https://msdn.microsoft.com/en-us/library/gg492084.aspx رجوع نمایید. در ادامه به بیان فیلدهای جدول می پردازیم.


 ساختار جدول File Table

جدول File Table از فیلدهای زیر تشکیل شده است:

  • path_locator:از نوع داده Hirarchyid بوده به صورت سلسله مراتبی مکان فایل را نشان می دهد.
  • stream_id: از نوع uniqueidentifier بوده و شناسه فایل می باشد.
  • file_stream: از نوع داده FileStream بوده و برای نگهداری فایل مورد استفاده قرار می گیرد.
  • file_type: برای تعریف نوع فایل بکار رفته و از نوع رشته ای می باشد.
  • Name: نام فایل یا پوشه را نگهداری می کند.
  • parent_path_locator: نام پوشه بالادستی (والد) را بیان می کند.
  • cached_file_size: اندازه فایل موجود در FileStream را بر حسب بایت بیان می کند.
  • creation_time: زمان ایجاد و ثبت رکورد را نشان می دهد.
  • last_write_time: زمان آخرین تغییر و بازنویسی را نگهداری می نماید.
  • last_access_time: بیانگر زمان آخرین دسترسی به محتویات رکورد می باشد.
  • is_directory: لین ستون بطور اتوماتیک پر شده و بیانگر این است که محتویات رکورد یک پوشه در ساختار سلسله مراتبی است یا یک برگ (فایل) می باشد.
  • is_offline: بیانگر ویژگی آفلاین بودن فایل می باشد.
  • is_hidden: بیانگر ویژگی مخفی بودن فایل می باشد.
  • is_readonly: بیانگر ویژگی فقط خواندنی بودن فایل می باشد.
  • is_archive: بیانگر ویژگی آرشیو بودن فایل می باشد.
  • is_system: بیانگر ویژگی سیستمی بودن فایل می باشد.
  • is_temporary: بیانگر ویژگی موقت بودن فایل می باشد.

مزایای  استفاده از File Table:

  • امکان استفاده از مکانیسم Transaction
  • کاهش حجم Log File
  • عدم استفاده از Buffer Pool برای BLOB
  • سهولت در تهیه نسخه پشتیبان
  • ذخیره داده ها به اندازه حجم NTFS
  • امکان دسترسی به File Table بدون واسطه

نحوه ایجاد File Table

در مرحله اول باید پایگاه دادهای را با ساختاری که استفاده از File Table را پشتیبانی کند را داشته باشیم برای اینکار طبق دستورات زیر این پایگاه داده را ایجاد می نماییم:

آشنایی با File Table

-- If the 'NorthPole' exists, drop it
IF DB_ID('NorthPole') IS NOT NULL BEGIN
DROP DATABASE NorthPole;
END -- Create NorthPole database
CREATE DATABASE NorthPole ON
PRIMARY (
NAME = NorthPole,
FILENAME = 'C:\ArtOfFS\Demos\Chapter11\NorthPole.mdf'
), FILEGROUP NorthPole_fs CONTAINS FILESTREAM(
NAME = NorthPole_fs,
FILENAME = 'C:\ArtOfFS\Demos\Chapter11\NorthPole_fs' )
LOG ON (
NAME = NorthPole_log,
FILENAME = 'C:\ArtOfFS\Demos\Chapter11\NorthPole_log.ldf') -- Configure non-transactional access
ALTER DATABASE NorthPole SET FILESTREAM (NON_TRANSACTED_ACCESS = FULL) -- Configure the root folder
ALTER DATABASE NorthPole SET FILESTREAM (DIRECTORY_NAME = 'NorthPole')

در گام بعدی اقدام به ساخت جدول می کنیم:

آشنایی با File Table

CREATE TABLE Documents AS FILETABLE
WITH (FILETABLE_DIRECTORY = 'NorthPole Documents')

حال برای درج در این جدول کافیست طبق دستور زیر عمل نماییم:

آشنایی با File Table

INSERT INTO Documents ([name], file_stream)
VALUES ('ReadMe.txt', 0x)

در ادامه بحث آشنایی با File Tableخواهید دید...!

1-آشنایی کامل با File Table 

2- آموزش جامع نحوه انجام تنظیمات پایگاه داده و ویندوز سرور برای استفاده از File Table


دسترسی به موارد آموزشی بالا در بسته خریداری شده

  • شماره جلسه: 3
  • نام فایل ویدئو: 01
  • فرمت فایل: mp4.

نقطه شروع بحث بالا (آشنایی با File Table) در ویدئو:  00:30


برای خرید و دانلود کاملآموزش پیشرفته SQL Server کلیک کنید.

READ MORE