سؤال

أمس سألت السؤال حول كيفية حفظ ملفاتي. بعد بعض الأبحاث، فأعدت أن أذهب مع تخزين الملفات "في" قاعدة البيانات.

لقد قمت بفحص الفرق بين تخزين الملفات باستخدام FileStream وتخزين الملفات في قاعدة البيانات نفسها.

لكل منها مزايا وعيوب. لمساعدتي في بحثي هذا الموقع ساعدني هذا الموقع كثيرا:http://www.codeproject.com/kb/database/sqlfilestream.aspx.

لذلك تقول أساسا أن حفظ الملفات باستخدام FileStream هو أفضل إذا كانت الملفات أكبر من 1 ميغابايت.

لكنني اكتشفت مشكلة أخرى مع FileStreaming. إذا قمت بحذف سجل في قاعدة البيانات، فلا يزال الملف موجودا على نظام الملفات.

لذلك أنا بحاجة إليك رأي الرجال. ماذا تستخدم؟ FileStream أو حفظ الملفات في قاعدة البيانات باستخدام Varbinary؟

grtz، م.

هل كانت مفيدة؟

المحلول

يتم إزالة البيانات الموجودة على نظام الملفات (يجب) بعد فترة وجيزة من حذف البيانات من قاعدة البيانات، على الرغم من أن هذا يتم في مؤشر ترابط خلفية نظام منفصل، لذلك قد يبقى في نظام الملفات حتى يعمل جامع القمامة بشكل أساسي مرة أخرى. ومع ذلك، سيتم ضمان جميع النتائج التي تم الوصول إليها من خلال أي من برامج برمجة تطبيقات FileStream (أي TSQL أو البث) لعدم الوصول إلى أي شيء تمت إزالته، سواء كانت بيانات نظام الملفات لا تزال موجودة على القرص (يتم ضمان الحمض مع FileStream).

نصائح أخرى

استخدام filestreams.

تم تصميم قواعد البيانات لتخزين البيانات العلائقية، تم تصميم أنظمة الملفات لتخزين الملفات.

سمعت كثيرا من موظفي Microsoft الذين يقومون بتخزين النقطات الكبيرة في SQL Server 2000/2005 (غير قادر على تذكر) ليست فكرة جيدة.

ضع في اعتبارك أيضا النسخ الاحتياطي: قاعدة بيانات هو ملف واحد (تحرير: إذا قمت بتكوينه بذلك). إذا كنت تستخدم FileTreams، فيمكنك النسخ الاحتياطي للملفات الفردية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top