#SqlServer, #Storage
❇ذخیرهسازی فایل در دیتابیس
با چه روشی انجام شود؟
varbinary?
file table?
...
حجم اطلاعات زیاد هستش
روش بهینه برای ذخیرهسازی چه روشی ست؟
برای نگهداری دادهای LOB یعنی CLOB ها و BLOB ها روشهای مختلفی وجود داره.
تعریف BLOB: مخفف Binary Large Object هست مانند Image
تعریف CLOB: مخفف Character Large Obeject هست مانند Text
اولین روش این هستش که ما مستقیماً داده رو در خود SQL در قالب یک فیلد از نوع VarBinary- XML-Nvarchar(MAX) و... ذخیره کنیم. اولین قوت این روش این هستش که کنترل مواردی مانند امنیت، جستجو، پشتیبانی Backup، عملیات مربوط به تراکنش و لغو آن و ... بر عهده خود SQL میباشد
اما نقاط ضعف این روش:
افزایش حجم LOGT - محدودیت حجم ۲ گیگابایت - وجود Fragmentation - استفاده زیاد از Buffer pool و Ram سیستم و ...
یکی از روشهای رایج دیگر نگهداری فایل، خارج از دیتابیس میباشد. که معمولاً اصل فایل (مثلاً تصویر) رو در یک پوشه خاص ذخیره میکنند و آدرس اون رو در یک فیلد از نوع Varchar یا Nvarchat نگهداری میکنند. در این روش کاهش Fragmentation - عدم استفاده از Buffer Pool - افزایش حجم ذخیرهسازی به اندازه دیسک و ... جزو مزیتها میباشد
نقاط ضعف این روش:
در این روش SQL هیچ کنترلی روی این فایل نداره. مثلاً در زمان بک آپ گیری از دیتابیس، از این پوشه بک آپی گرفته نمی شه و کنترل مواردی مانند امنیت و تراکنشها بر عهده SQL نمیباشد. به دلیل درگیری بین SQL و NTFS، دارای کد نویسی پیچیده میباشد و ....
و
اما یکی از روشهای بسیار مناسب Filestream میباشد که از نسخه 2008 ارائه شد و مزیتهای دو روش اشاره شده دارا میباشد. راهاندازی FileStream نیازمند تنظیمات سطح سرور و سطح Instance میباشد.
در ادامه به یک سؤال مهم جواب میدهیم:
چه زمانی برای ذخیرهسازی اطلاعات از Filestream استفاده کنیم؟؟
پاسخ:
در تئوری گفته شده است که برای دادههای با حجم بیش از یک مگابایت اما در عمل برای دادههای با حجم بیش از ۲۵۶KB و برای دادههای با حجم کمتر از ۲۵۶KB نوع Nvarchar (MAX) مناسبتر میباشد.
و اما ساختار دیگری که میتوان از آن برای نگهداری فایلها استفاده کرد File Table میباشد که از نسخه ۲۰۱۲ معرفی شد. در واقع متوان به این صورت گفت که File Table از همکاری بین File Stream و نوع دادهای Hierachy ایجاد شده است. در واقع با ایجاد FileTable ارتباط بین SQL, Ntfs رو برقرار کردهایم. به این معنا که با حذف فایل از SQL، اطلاعات این فایل از NTFS نیز حذف میشود و با تغییر محل فایل در SQL، این تغییر مکان در NTFS نیز اعمال میشود.
محسن بندامیر
@Mohsen_Bandamir
کانال تخصصی SqlServer
@SQLSERVER_professional
✅ آشنایی با قابلیت FileStream اس کیوال سرور
https://www.dotnettips.info/post/331/
https://www.dotnettips.info/post/332/
https://www.dotnettips.info/post/333/
❇ذخیرهسازی فایل در دیتابیس
با چه روشی انجام شود؟
varbinary?
file table?
...
حجم اطلاعات زیاد هستش
روش بهینه برای ذخیرهسازی چه روشی ست؟
برای نگهداری دادهای LOB یعنی CLOB ها و BLOB ها روشهای مختلفی وجود داره.
تعریف BLOB: مخفف Binary Large Object هست مانند Image
تعریف CLOB: مخفف Character Large Obeject هست مانند Text
اولین روش این هستش که ما مستقیماً داده رو در خود SQL در قالب یک فیلد از نوع VarBinary- XML-Nvarchar(MAX) و... ذخیره کنیم. اولین قوت این روش این هستش که کنترل مواردی مانند امنیت، جستجو، پشتیبانی Backup، عملیات مربوط به تراکنش و لغو آن و ... بر عهده خود SQL میباشد
اما نقاط ضعف این روش:
افزایش حجم LOGT - محدودیت حجم ۲ گیگابایت - وجود Fragmentation - استفاده زیاد از Buffer pool و Ram سیستم و ...
یکی از روشهای رایج دیگر نگهداری فایل، خارج از دیتابیس میباشد. که معمولاً اصل فایل (مثلاً تصویر) رو در یک پوشه خاص ذخیره میکنند و آدرس اون رو در یک فیلد از نوع Varchar یا Nvarchat نگهداری میکنند. در این روش کاهش Fragmentation - عدم استفاده از Buffer Pool - افزایش حجم ذخیرهسازی به اندازه دیسک و ... جزو مزیتها میباشد
نقاط ضعف این روش:
در این روش SQL هیچ کنترلی روی این فایل نداره. مثلاً در زمان بک آپ گیری از دیتابیس، از این پوشه بک آپی گرفته نمی شه و کنترل مواردی مانند امنیت و تراکنشها بر عهده SQL نمیباشد. به دلیل درگیری بین SQL و NTFS، دارای کد نویسی پیچیده میباشد و ....
و
اما یکی از روشهای بسیار مناسب Filestream میباشد که از نسخه 2008 ارائه شد و مزیتهای دو روش اشاره شده دارا میباشد. راهاندازی FileStream نیازمند تنظیمات سطح سرور و سطح Instance میباشد.
در ادامه به یک سؤال مهم جواب میدهیم:
چه زمانی برای ذخیرهسازی اطلاعات از Filestream استفاده کنیم؟؟
پاسخ:
در تئوری گفته شده است که برای دادههای با حجم بیش از یک مگابایت اما در عمل برای دادههای با حجم بیش از ۲۵۶KB و برای دادههای با حجم کمتر از ۲۵۶KB نوع Nvarchar (MAX) مناسبتر میباشد.
و اما ساختار دیگری که میتوان از آن برای نگهداری فایلها استفاده کرد File Table میباشد که از نسخه ۲۰۱۲ معرفی شد. در واقع متوان به این صورت گفت که File Table از همکاری بین File Stream و نوع دادهای Hierachy ایجاد شده است. در واقع با ایجاد FileTable ارتباط بین SQL, Ntfs رو برقرار کردهایم. به این معنا که با حذف فایل از SQL، اطلاعات این فایل از NTFS نیز حذف میشود و با تغییر محل فایل در SQL، این تغییر مکان در NTFS نیز اعمال میشود.
محسن بندامیر
@Mohsen_Bandamir
کانال تخصصی SqlServer
@SQLSERVER_professional
✅ آشنایی با قابلیت FileStream اس کیوال سرور
https://www.dotnettips.info/post/331/
https://www.dotnettips.info/post/332/
https://www.dotnettips.info/post/333/
.NET Tips
آشنایی با قابلیت FileStream اس کیوال سرور 2008 - قسمت اول
مطلبی چندی قبل در مورد "ذخیره سازی فایلها در دیتابیس یا استفاده از فایل سیستم متداول؟" منتشر گردید، جهت برشمردن فواید ذخیره سازی فایلها در دیتابیس (+). اما معایب این نوع ذخیره سازی بررسی نشدند:الف) اختصاص یافتن قسمتی از بافر SQL Server به این امر.ب) با…
📽مسیر کامل دوره یادگیری توسعه پایگاه های داده SQL Server
⏰حدود 25 ساعت دوره از مبتدی تا پیشرفته
📁به همراه تمام فایل ها و زیرنویس ها
برای کسانی که میخواهند تازه SQL Server را شروع کنند
برای حرفه ای شدن در SQL Server هم شدیدا توصیه میکنم مسیر پرس و جو داده ها با T-SQL از SQL Server رو حتما ببنید
—دانلود 📥 :
پارت اول | پارت دوم
🗂 دقت کنید باید همه پارت ها دانلود بشوند و بعد همه پارت ها را انتخاب کنید و Extract کنید
ما رو به دوستان خودتان معرفی کنید 😉🌹
#course #pluralsight #sql #sqlserver
🆔 @dotnetcode
⏰حدود 25 ساعت دوره از مبتدی تا پیشرفته
📁به همراه تمام فایل ها و زیرنویس ها
برای کسانی که میخواهند تازه SQL Server را شروع کنند
برای حرفه ای شدن در SQL Server هم شدیدا توصیه میکنم مسیر پرس و جو داده ها با T-SQL از SQL Server رو حتما ببنید
—دانلود 📥 :
پارت اول | پارت دوم
🗂 دقت کنید باید همه پارت ها دانلود بشوند و بعد همه پارت ها را انتخاب کنید و Extract کنید
ما رو به دوستان خودتان معرفی کنید 😉🌹
#course #pluralsight #sql #sqlserver
🆔 @dotnetcode
📽مسیر کامل دوره یادگیری پرس و جو داده ها با T-SQL از SQL Server
⏰حدود 20 ساعت دوره از مبتدی تا پیشرفته
📁به همراه تمام فایل ها و زیرنویس ها
برای کسانی که می خواهند در SQL Server حرفه ای شوند!
—دانلود 📥 :
پارت اول
🗂 دقت کنید باید همه پارت ها دانلود بشوند و بعد همه پارت ها را انتخاب کنید و Extract کنید
ما رو به دوستان خودتان معرفی کنید 😉🌹
#course #pluralsight #sql #sqlserver
🆔 @dotnetcode
⏰حدود 20 ساعت دوره از مبتدی تا پیشرفته
📁به همراه تمام فایل ها و زیرنویس ها
برای کسانی که می خواهند در SQL Server حرفه ای شوند!
—دانلود 📥 :
پارت اول
🗂 دقت کنید باید همه پارت ها دانلود بشوند و بعد همه پارت ها را انتخاب کنید و Extract کنید
ما رو به دوستان خودتان معرفی کنید 😉🌹
#course #pluralsight #sql #sqlserver
🆔 @dotnetcode