سؤال

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

  • كيف يمكنني إصدار أمر VACUUM برمجيًا لمتاجر SQLite الخاصة بـ Core Data؟
  • هل من الممكن القيام بذلك من خلال Core Data، أم يجب أن أقوم بتثبيت قاعدة بيانات SQLite والاتصال بها مباشرة لتنفيذ VACUUM SQL؟
هل كانت مفيدة؟

المحلول

الطريقة المدعومة للقيام بذلك، في نظام التشغيل OS X 10.6 / iOS 3.0 والإصدارات الأحدث، هي تعيين NSSQLiteManualVacuumOption في الخيارات عند قيامك بإضافة المتجر إلى منسق المتجر الدائم.

نصائح أخرى

نعم، vacuum عبارة SQL معترف بها في SQLite.ويمكن استخدامه كاستعلام عادي، أو هكذا يقول.

ومع ذلك، احذر، لأنه يمكن أن يؤدي إلى عمليات قراءة وكتابة مفرطة في نظام الملفات - وهو عنق الزجاجة لأي نظام عمليًا - ناهيك عن تجزئة نظام ملفات الخادم على خوادم Windows.

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