كان هناك مشروع أصلي تم تطويره باستخدام ASP وباستخدام قاعدة بيانات Oracle. استخدم الكود أدناه للحصول على بيان الاستعلام.
تعيين RS = Server.CreateObject("ADODB.Recordset")
تحتوي عبارة SQL التي سيتم تنفيذها بواسطة RS.open على بنية ذات مستويين في منطق اتصال قاعدة البيانات، عند تكرار البيانات الأصلية، يتم الاستعلام عن مجموعة البيانات الفرعية الموجودة في كل بيانات أصل.
strSQL = "عبارة SQL للاستعلام عن البيانات الأصلية"
سيتم تنفيذ عبارة SQL RS.open،
ويتم إجراء الاتصال بقاعدة البيانات حتى RS.EOF
strSQL2 = "عبارة SQL للاستعلام عن بيانات الطفل"
RS2.open عبارة SQL التي سيتم تنفيذها، اتصال قاعدة البيانات
RS2.CLose
RS.MoveNext
حلقة
RS.إغلاق
ولكن بعد التبديل من قاعدة بيانات Oracle إلى قاعدة بيانات SQL Server، لم يتغير المنطق ولكن الزمن تغير كثيرًا. من الثواني القليلة الأصلية إلى أكثر من 50 ثانية، يبدو أن السبب هو الحلقة المتداخلة لمجموعتين من مجموعات السجلات. الحل هو استخدام صفيف لتخزين البيانات الأصل، ثم تنفيذ RS.Close، ثم تكرار الصفيف للاستعلام عن البيانات التابعة.
لا أعرف السبب جيدًا، لذا أرجو أن تعطيني بعض النصائح. شكرًا.
http://blog.csdn.net/dutguoyi/archive/2007/03/18/1532924.aspx