سؤال

أنا نادرا (شهري/ربع سنوي) توليد مئات Crystal reports التقارير باستخدام Microsoft SQL Server 2005 في قاعدة البيانات.هي تلك المشاهدات من إضاعة دورات وحدة المعالجة المركزية و ذاكرة الوصول العشوائي خلال كل الوقت الذي أنا لا تقرأ منها ؟ وينبغي بدلا من ذلك استخدام الإجراءات المخزنة الجداول المؤقتة أو قصيرة الأجل العادي الجداول منذ أنا نادرا ما تقرأ من نظري ؟

أنا لا ديسيبل لذلك أنا لا أعرف ماذا يجري وراء الكواليس داخل خادم قاعدة البيانات.

هل من الممكن أن يكون لديك الكثير من البيانات وجهات النظر ؟ ما يعتبر أفضل الممارسات ؟

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

المحلول

بالنسبة للجزء الأكبر, لا يهم.نعم SQL Server سيكون لديك المزيد من الخيارات عندما يوزع حدد * من الجدول (يجب أن ننظر في نظام الكتالوجات على 'جدول') لكنه الأمثل للغاية ، شريطة أن يكون لديك ما يكفي من ذاكرة الوصول العشوائي (معظم خوادم في الوقت الحاضر) ، لن تلاحظ الفرق بين 0 و 1 ، 000 وجهات النظر.

بيد أن من الناس-المنظور تحاول إدارة معرفة ما "مئات" من آراء يفعلون وربما مستحيلا ، لذا فمن المرجح أن يكون لديك الكثير من تكرار الرمز في هناك.ماذا يحدث إذا كان بعض قواعد العمل التغيير التي هي جزء لا يتجزأ في هذه زائدة وجهات النظر ؟

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

نصائح أخرى

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

أن يقال, عند تحديد من طريقة عرض عرض تعريف الاستعلام تشغيل جنبا إلى جنب مع الاستعلام تقوم بتشغيله.

على سبيل المثال ، إذا vwCustomersWhoHavePaid هو:

Select * from customers where paid = 1

و الاستعلام كنت تقوم بتشغيل العوائد للعملاء الذين دفعوا بعد آب / أغسطس الأولى من تنسيق مثل هذا:

Select * from vwCustomersWhoHavePaid where datepaid > '08/01/08'

الاستعلام كنت فعلا على التوالي هو:

Select * from (Select * from customers where paid = 1) where datepaid > '08/01/08'

هذا شيء يجب أن نأخذ في الاعتبار عند إنشاء وجهات النظر ، فهي وسيلة لتخزين البيانات التي تبدو في كثير من الأحيان.انها مجرد وسيلة لتنظيم البيانات لذلك فإنه من السهل الوصول إليها.

آراء فقط سوف تأخذ وحدة المعالجة المركزية/الذاكرة الموارد عند استدعائهم.

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

أيضا, إلا إذا كنت حقا بحاجة المعاملات العزلة النظر في استخدام NOLOCK الجدول تلميح في الاستفسارات الخاصة بك.

-- كيفن فيرتشايلد

تسأل:ماذا يجري وراء الكواليس ؟

الرأي هو مجموعة من نص SQL.عند الاستعلام يستخدم طريقة عرض SQL Server الأماكن التي نص SQL في الاستعلام.يحدث هذا قبل الأمثل.والنتيجة هو محسن في الجمع بين رمز بدلا من قطعتين منفصلتين من التعليمات البرمجية للحصول على أفضل خطة التنفيذ.

يجب أن ننظر في تنفيذ خطط الاستفسارات الخاصة بك!هناك الكثير للتعلم هناك.

SQL Server أيضا مفهوم تتجمع عرض.A تتجمع عرض هو نظام الحفاظ على النتيجة مجموعة (كل إدراج/تحديث/حذف / على الجداول الأساسية يمكن أن يسبب إدراج/تحديث/حذف على تتجمع عرض's البيانات).فمن الخطأ الشائع أن نعتقد أن الآراء التي تعمل في الطريقة التي تتجمع الآراء العمل.

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