منزل
Top.Mail.Ru Yandeks.Metrika
المنتدى: "القواعد";
الأرشيف الحالي: 2002.01.08;
تنزيل: [xml.tar.bz2];

إلى

وصول سريع إلى ORACLE DB البحث عن فروع مماثلة


Yelchev   (2001-12-03 10:26) [0]

هناك مشكلة هناك قاعدة بيانات خارج ترتيب مليون سجل مع حقول النقطة. أستخدم مكون Oracle Direct Acess. القراءة تستغرق الكثير من الوقت. كيفية تحسين قراءة الجدول حسب الوقت وما هي مكونات الوصول بشكل أسرع إلى قاعدة البيانات. على سبيل المثال ، سأقول أنه لتحديد سجلات 25000 لكل منها وحدة تخزين 20K ، فإنك تحتاج إلى 15 دقيقة



Владислав   (2001-12-03 11:22) [1]

نص الطلب إلى الاستوديو.



petr_v_a   (2001-12-03 11:24) [2]

من غير المحتمل وجود مكونات أسرع ، إذا كان شخص ما أسرع ، ثم ليس في بعض الأحيان. سؤال مضاد - لماذا اسحب سجلات 25000 إلى عميل؟ لن يقبل المستخدم بعد الآن سجلات 50-100 في الشبكة ، وسيريد إجراء "بحث إضافي" ، وما إلى ذلك. في المستوى الأساسي ، اقرأ عن إعدادات تخزين LOB ، هناك صفحات 100



Yelchev   (2001-12-03 12:22) [3]

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



Yuvich   (2001-12-03 12:44) [4]

آه ، هذا يعني أنه لا تدوم العينة ~ 15min. ، لكن معالجة النقط تدوم 15min. هنا تحتاج إلى البحث: ما يتم تخزينه في المعلومات المهيكلة أم لا. إذا كانت مهيكلة ، فمن الضروري وضعها في الجداول والقيام بالمعالجة ليس في مرحلة أخذ العينات ، ولكن في مرحلة الكتابة إلى الجدول. إذا لم يكن منظمًا ، فحاول دائمًا تقديم المعلومات في شكل هيكل. وكما قال أحد علماء الرياضيات: "لا يوجد مجال موضوع من هذا القبيل لا يمكن تمثيله كهيكل هرمي."



Yelchev   (2001-12-03 12:50) [5]

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



petr_v_a   (2001-12-03 13:33) [6]

هذا أسوأ. بعناية قرأت عن خيارات تخزين LOB :). بالنسبة لـ v $ session_wait و v $ system_event ، انظر إلى الوقت الضائع حقًا ، فإذا تم حساب وحدات تخزين BLOB هذه ، فربما يجب عليك التفكير في الإجراءات الخارجية.



Yelchev   (2001-12-03 13:55) [7]

وكم سأحصل عليه مع مرور الوقت إذا قمت بدمج مقارنة في قشرة أوراكل (إذا كان ذلك ممكنًا ولا تقم بتنزيل المعلومات إلى العميل ، شريطة أن تتطلب مقارنة الصفائف المخزنة في المربع تحويل فورييه وعمليات حسابية أخرى + تخصيص عدد كبير من الذاكرة (حتى 29M)



Mick   (2001-12-03 14:05) [8]

إذا كان Oracl موجودًا على Wintel ، فسوف أقوم بنقل معالجة النقط إلى الخادم. هذا هو الرابط المعتاد.



Yelchev   (2001-12-03 14:11) [9]

"هذا هو ، المعتاد ثلاثة رابط"؟ أعتذر عن قلة تفهمك ، لكن ماذا يعني هذا؟



petr_v_a   (2001-12-03 14:29) [10]

أسهل طريقة لقياس كسب الوقت هي عن طريق الكتابة
بدأ
لـ cr في (<طلبك>) حلقة
فارغة؛
الغاية؛
الغاية؛
ورؤية كم يتم القيام به هذا



Yuvich   (2001-12-03 15:48) [11]

يقول مايك بشكل صحيح - أنت بحاجة إلى نقل المعالجة إلى الخادم ، ثم تعتمد سرعة المعالجة على سعة الخادم ، وليس على قدرة العميل.

حتى إذا لم يكن Oracle في Wintel ، يمكنك كتابة إجراء PL / SQL واستدعاء إجراء آخر منه يسمى خارجي ومكتوب ، على سبيل المثال ، في C أو Cobol. شيء آخر هو أنك بحاجة إلى معرفة لغة نظام التشغيل التي يقف عليها Oracle ويدعم اتصال Oracle. أن تكون أكثر دقة - تحتاج إلى قراءة الوثائق.



petr_v_a   (2001-12-03 16:29) [12]

يمكن كتابة كلمة "خارجية" في دلفي وفي المجمع ، الشيء الرئيسي هو اتفاقيات نداء السنسن. بالنسبة لـ Wintel - هناك عبارة رائعة في الوثائق ، (الترجمة الخاصة بي) - "الإجراءات الخارجية مدعومة على أي نظام أساسي يدعم DLL ، على سبيل المثال Solaris" :))



Yuvich   (2001-12-03 17:12) [13]

لا أعتقد أنه يمكن استخدام مكتبة الارتباط الحيوي (DLL) المكتوبة في دلفي على سولاريس ، ولهذا السبب أقول - أنت بحاجة إلى الكتابة ، حتى في المجمع ، باللغة التي يوجد بها مترجم في نظام التشغيل.

فيما يتعلق بـ "العبارة الذكية" ، بعض الإضافات: ... دعم مكتبات الارتباط الحيوي (DLL) أو مكتبات الوصول المشتركة المحمّلة ديناميكيًا ... على سبيل المثال Solaris .so libraries.



Yuvich   (2001-12-03 17:15) [14]

من نفس عبارة التوثيق:

لذلك ، يتم تنفيذ بعض المهام بسرعة أكبر أو بسهولة بلغة منخفضة المستوى مثل C ، والتي تكون أكثر كفاءة في العمليات الحسابية ذات الدقة في الآلة. على سبيل المثال ، تحويل فورييه السريع (FFT) روتين مكتوب في C يعمل بشكل أسرع من واحد مكتوب في PL / SQL.



petr_v_a   (2001-12-03 17:53) [15]

> Yuvich :) حسنًا ، هؤلاء ، لم أكن أنوي استخدام مكتبة الارتباط الحيوي (DLL) المكتوبة في دلفي على Solaris :) وكانت النقطة أنه يمكنك الكتابة على أي شيء ، إذا كانت المكالمة فقط مخيفة. ذلك ، يجب أن تبدأ ، بالطبع :)



Yuvich   (2001-12-03 18:02) [16]

> petr_v_a
لا شيء شخصي. ربما لم أفهم شيئًا.



ASV   (2001-12-04 03:11) [17]

والحساب هنا بسيط جدا. الشبكة ، ثم ربما لديك 10MB؟
لذلك 25000 * 20К = 500000К ، مع متوسط ​​عرض نطاق شبكة يبلغ 600К / ثانية ، يمنح 13,8 دقيقة.
وليس هناك ما تفعله سوى نقل الحساب إلى الخادم.

الكسندر سفيريدنكوف



صفحات: 1 فرع كامل

المنتدى: "القواعد";
الأرشيف الحالي: 2002.01.08;
تنزيل: [xml.tar.bz2];

الطابق العلوي





الذاكرة: 0.61 ميغابايت
الوقت: 0.034 ج
1-22075
كما
2001-12-19 12:40
2002.01.08
الجداول في MS Word


1-22073
HydraMarat
2001-12-19 00:22
2002.01.08
DLL أو BPL


14-22392
~ ماج ~
2001-11-10 13:27
2002.01.08
الناس كيفية فتح التسجيل في ويندوز ؟؟


6-22315
Marser
2001-08-01 16:04
2002.01.08
رسالة SMS


1-22005
Cossys
2001-12-17 16:57
2002.01.08
عرض جميع نماذج الطلب مع الرؤوس النشطة





الأفريكانية الألبانية عربي الأرميني أذربيجان الباسكي البيلاروسية Bulgarian التشيكية الصينية المبسطة) تقاليد صينية) الكرواتية التشيكية دانماركي Dutch English الإستونية الفلبينية Finnish جيب
الجاليكية الجورجية الألمانيّة اليونانيّة الكريولية الهايتية اللغة العبرية الهندية الهنغارية أيسلندي Indonesian الأيرلندية Italian اليابانيّة الكوريّة اللاتفية اللتوانية المقدونية الملايو المالطية Norwegian
اللغة الفارسية بولنديّة البرتغاليّة رومانية Russian صربي السلوفاكيّة سلوفيني إسباني السواحيلي Swedish Thai التركية الأوكراني الأردية الفيتنامية ويلزي اليديشية البنغالي البوسنية
السيبيونو الاسبرانتو الغوجاراتية الهوسا همونغ الإيبو جاوي الكانادا الخمير لاو لاتينية الماوري المهاراتية المنغولية النيبالية البنجابية الصومالية التاميل التيلجو اليوروبا
زولو
Английский Французский ألماني Итальянский البرتغالية Русский Испанский