جلسه سیزدهم دوره SQL Server 2016 ویژه برنامه نویسان با موفقیت برگزار شد.
در این جلسه مباحث خوبی در خصوص Filestream,FileTable,In Memory OLTP برای دوستان توضیح داده شد.
در ادامه مطلب خلاصهای از موارد اشاره شده را بررسی خواهیم کرد.
1- معرفی Filestream
یکی از ویژگیهای جذابی که در SQL Server 2008 معرفی شد استفاده از نوع داده Filestream برای ذخیره و بازیابی دادههای Binary Large Object میباشد. فرض کنید که شما یک سیستم حسابداری دارید و میخواهید ضمائم مربوط به هر کدام از اسناد را اسکن کرده و در Database ذخیره نمایید.
خیلی از دوستان این نوع اسناد را به فرمت PDF در آورده و در بانک اطلاعاتی ذخیره میکنند غافل از اینکه ذخیره فایل با حجمی بالا در بانک اطلاعاتی مشکلاتی مانند Fragmentation، درگیری با Buffer Pool و… دارد. اما حالا در SQL Server قابلیتی به نام Filestream وجود دارد که هدف آن یکپارچه سازی NTFS با Database Engine میباشد. بوسیله این ویژگی BLOBها در خارج از Database ذخیره در NTFS ذخیره میشوند.
جزئیات مربوط به این موضوع و همچنین نحوه برنامه نویسی آن به طور مفصل در این جلسه بررسی شده است.
2- معرفی FileTable
یکی دیگر از قابلیتهایی که در SQL Server 2012 به واسطه Filestream معرفی شده است ویژگی FileTable است. هدف این قابلیت ارائه جدولی است که در آن BLOBها ذخیره شوند و شما بدون واسطه بتوانید با امکانات موجود در OS (البته با کمی چاشنی SQL Server) با این جدول ارتباط برقرار کنید.
به طوری که اگر در سطح OS فایل و یا فولدری در داخل Container مربوط به FileTable ایجاد کنید رکوردهای مربوط به آن به صورت خودکار در بانک اطلاعاتی درج میشود.
در این جلسه برای استفاده از این موضوع چندین سناریو کاربردی توسط دوستان ارائه شد. امیدوارم که هر کدام از دوستان بتوانند از این ویژگی در پروژههای خود استفاده کنند.
3- معرفی In Memory OLTP
در SQL Server 2014 تکنولوژی به نام In-Memory OLTP معرفی گردید که به واسطه آن جداولی با نام Memory Optimized Table معرفی شدند. هدف این نوع جداول دخیره دادههای مربوط به جداول در حافظه با معماری متفاوت از جداول Disk Based بود.
سرعت بالای این جداول هر کسی را وسوسه میکرد که از امکانات آن استفاده کند اما وجود محدودیتهای در SQL Server 2014 باعث میشد که هر کسی نتواند از ویژگیهای آن در پروژههای خود استفاده کند. اما حالا شما میتوانید حساب ویژهای بر روی امکانات آن در SQL Server 2016 داشته باشید زیرا برخی از محدودیتهای آن برداشته شده و شما میتوانید از آن به خوبی استفاده کنید.
در این جلسه ما چندین سناریو برای استفاده از این نوع جداول را ذکر کردیم و همچنین به طور عملی کارایی این نوع جداول را در مقایسه با جداول Disk Based به دوستان نمایش دادیم.
تمرین و مسابقه
مباحث موجود در این جلسه کمی زیاد و به قول دوستان سنگین بود بنابراین با نظر دوستان قرار بر این شد که این جلسه تمرین نداشته باشیم.
اما مباحثی که در این جلسه بررسی شد عبارتند از
1- آشنایی با نحوه کار پیکربندی Filestream
2- آشنایی با نحوه پیکربندی FileTable
3- آشنایی با نحوه برنامه نویسی برای Filestream و FileTable
4- آشنایی با In-Memory OLTP
5- آشنایی با Memory Optimized Table
6- آشنایی با Natively Compiled Stored Procedure
7- آشنایی با Hash Index
8- آشنایی با Non Clustered Index و نحوه استفاده از آنها در Memory Optimized Table
9- آشنایی با مفهوم Lock Free و Latch Free
10- آشنایی با BW Tree و برخی از ویژگیهای آن
11- آشنایی مقدماتی با CDC
5 دیدگاه
سید شاهین میرعبدالحق
بسیار عالی و کاربردی
با تشکر از استاد خوبم جناب طاهری
Mehdi
سلام،
هنگام خواندن FileStream با خطای Access Denied مواجه می شوم، چگونه می توانم این خطا را برطرف کنم؟
ممنون.
مسعود طاهری
اگر از روش جدید (روش کار Filestream در دات نت ) استفاده می کنید باید Windows Authentication وصل شده باشید
در دوره SQL Server ویژه برنامه نویسان این مورد بررسی شده است
Mehdi
Integrated Security = true
از نظر امنیتی مشکلی ایجاد نمی کند ؟
مسعود طاهری
روش Windows Authentication یکی از امن ترین روش های Authentication است. چون کلی امکانات امنیتی ویندوز را روی آن می توان فعال کرد
اما باید توجه داشته باشید که شما بتوانید App خود را با این روش وقف دهید