سؤال

لدي تطبيق يجعل استفسارات مختلفة مع نتائج مختلفة، لذا فإن التخزين المؤقت في حالتي ضارة.

هذا يعني أنه لا توجد بيانات شائعة أن SQL قد تنفذ منه إحضار النتيجة من الذاكرة مباشرة بدلا من إصدار وصول القرص الثابت.

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

المحلول

من تعليقاتك، يبدو أنك لا تريد استخدام SQL في الذاكرة بكثير كما تشعر أنه لا معنى له مثل أي استفسارات تديرها عشوائية بشكل فعال.

أولا، ربما يتم استخدام هذه الذاكرة لتخزين الفهارس وخطط الاستعلام، بدلا من البيانات الفعلية التي تريد إرجاعها، وبالتالي فمن المحتمل أن تجد هذه ذاكرة التخزين المؤقت أكثر فائدة بكثير مما تعتقد.

ثانيا، من غير المرجح أن يؤدي استخدام SQL باستخدام مقدار الذاكرة إلى هذا الأداء المخفض على استعلام غير مرئي عشوائي حقيقي. إذا كان SQL Server يحتاج إلى الذهاب إلى القرص للحصول على أي معلومات ثم مقدار الذاكرة باستخدام بالكاد مناسب.

ومع ذلك، فمن الممكن تقليل مقدار الذاكرة التي يستخدمها SQL Server. (لا أعرف أين يوجد الخيار في SQL 2008، لكنني أفترض أنه مماثل إلى حد ما) في الاستوديو الإداري، انقر بزر الماوس الأيمن على الخادم وقم بالخصائص. تحت هناك سيكون لديك صفحة للذاكرة. يمكنك هنا تحديد القيم الدنيا والحد الأقصى التي ستستخدمها SQL. سيؤدي ذلك إلى حد فعال أي SQL SQL تستند إلى قيمك، بدلا من قيود الخوادم الفيزيائية.

أنا حقا لا أعتقد أنك سوف ترى أي مكاسب أداء رغم ذلك. في تجربتي، يجب ترك SQL دائما القيام بذلك.

نصائح أخرى

سؤالك خطأ: التخزين المؤقت يعني البيانات في الذاكرة، وتجنب الوصول إلى القرص.

في أي حال، فإن التخزين المؤقت SQL Server غير ضار. بالنسبة للمولدات، هناك دائما استثناءات ولكن عليك أن تكون لديك رمز وشدد خطير التكوين قبل أن يكون.

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

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