أوراكل مقابل PostgreSQL. قد يكون اختيار أوراكل قرارًا ذكيًا

قراءة العديد من المقالات في المحور حول الترحيل الناجح من Oracle إلى PostgreSQL ، قد يحصل القارئ قليل الخبرة على الانطباع بأن PostgreSQL ليس أسوأ أو أفضل من Oracle. والخيار واضح. ومئات الآلاف من الشركات التي تنتهي بدفع مليارات الدولارات لأوراكل تهدر أموالها. لكني سأحاول أن أطمئنك ، وأين وأين ، وفي الشركات الكبيرة يعرفون كيف يحسبون المال. وقراراتهم ليست مخطئة بأي حال من الأحوال.

الغرض من المقالة هو خلق قدر من الشك في روح القارئ الذي يحاول الاختيار بين قواعد البيانات العلائقية التي تعمل في وضع الإصدار. لماذا وضع نسخة بالضبط؟ هنا ليس الخيار كبيرًا ، ولكن في أدوات الحظر هناك منافسون جديرون والاختيار أكثر صعوبة. (ما تكلفة الإصدار المجاني من DB2 لقواعد البيانات الصغيرة؟)

لست خبيرًا في قاعدة بيانات أوراكل ، على الرغم من أنني عملت مع قاعدة البيانات هذه لسنوات عديدة وليس فقط معها. كل ما يمكنني فعله هو استخدام مزاياه وتحقيق الأداء الأمثل. علاوة على ذلك ، أنا لست خبيرًا في PostgreSQL (لم يسبق لي استخدامه في الإنتاج).

قراءة مقالات حول الترحيل الناجح - أفهم أن هذه الشركات لا تحتاج حتى إلى Oracle أو تم تحديد قاعدة البيانات بشكل غير صحيح في البداية. استخدموا جزء صغير فقط من قدرات قاعدة البيانات هذه. لذلك فقط يمكنهم اتخاذ قرار بشأن الهجرة وتنفيذها. ببساطة ، إذا كنت تستخدم القوة الكاملة لقاعدة البيانات هذه ، فلن ترغب أبدًا في الترحيل لأنها أقرب إلى كتابة تطبيقك من البداية.

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

  1. التقسيم (8 ط) . التقسيم - يتيح نمو حجم البيانات مع عدم وجود تأثير فعلي على الأداء العام. مكافأة لطيفة ومهمة هي تقسيم الفهارس. ستظهر أقسام PostgreSQL في الإصدار 10 فقط. قبل ذلك ، كان الوراثة (الوراثة) اختراقًا قذرًا. وتتزايد إمكانات التقسيم في Oracle مع كل إصدار.
  2. دمج (8i) . نعم ، نعم ، نفس الدمج الذي كان موجودًا في MSSQL لسنوات عديدة (2008) والذي لن يكون موجودًا حتى في PostgreSQL 11. إنه يعطي زيادة في السرعة عشر مرات مقارنة بالعمليات الفردية. نعم ، أعلم أن PostgreSQL يدعم الاستعلامات الفرعية ويمكنك تنفيذ كل شيء من خلال إدراج التحديد والتحديث الصعب. لكن هذا أبعد ما يكون عن نفسه.
  3. RESULT_CACHE (اختر) (11 جم ). في أوراكل ظهرت هذه التكنولوجيا مؤخرًا نسبيًا. إذا كنت تستخدم هذه التكنولوجيا بحكمة - فهي تعطي مكاسب في بعض الأشياء عشرات أو مئات المرات. الشيء الرئيسي هو تعلم كيفية استخدامه بذكاء.
  4. INMEMORY ( 12 ) لا يوجد تناظرية في PostgreSQL. نمو حقيقي في بعض الاستفسارات مئات المرات.
  5. محسن + ضبط الاستعلام . بدءًا من 11 جم ، تحولت إلى نقرة تقريبًا -> التالي في EM. PostgreSQL أكثر تعقيدًا مع هذا ، وعدم وجود نظير EM بشكل عام غير مريح تمامًا.

    PL / SQL. نعم ، أنا أعرف عن مجموعة متنوعة من اللغات في PostgreSQL. لكن أوراكل تعمل باستمرار على تحسين اللغة مع التركيز على الأداء.
    • تجميع . يحدث الرمز الفرعي أثناء الحفظ (في PostgreSQL أثناء المكالمة الأولى في خطة الجلسة + الاستعلام أثناء التنفيذ الأول). بدءًا من 10 جرام ، يمكن لـ Oracle الترجمة إلى كود أصلي.
    • Native Integer - يعمل على تسريع العمل بالأرقام بشكل كبير. يمكن لـ PostgreSQL استخدام لغات أخرى أكثر ملاءمة (مترجمين). في Oracle ، يمكن حل ذلك أيضًا باستخدام Java و C.
    • تبديل "سياق" PL / SQL. تهتم أوراكل بشدة بتحسين هذا المقياس وتحسينه من إصدار إلى آخر. لتقليل التأخيرات ، يمكنك تبديل "السياق" باستخدام BULK COLLECT و FORALL والمزيد.

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

حسنًا ، كما يقولون ، فإن الشيطان يكمن في التفاصيل ، وقد توصلت Oracle إلى هذه التفاصيل بشكل أفضل. لا تتوقف Oracle أبدًا عن دهشتها مع كل إصدار. ولا يهم قاعدة البيانات التي تنقل إليها بعد Oracle - سيكون لديك دائمًا الشعور: حسنًا ، اللعنة ، في Oracle منذ فترة طويلة ، أو في Oracle أفضل.

أنا متأكد تقريبًا أنه باستخدام نفس الجهاز وباستخدام جميع ميزات PostgreSQL و Oracle ، يمكنك الحصول على أداء أفضل بجهد أقل على ORACLE.

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

أنا أتفهم جيدًا أن هناك دائمًا أشياء من الأفضل القيام بها في PostgreSQL. ولكن بشكل عام ، أوراكل في هذا الجزء من قاعدة البيانات رقم 1.

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

سابقًا ، في مكان ما حتى الإصدار 10 ، كان المسؤول دائمًا بحاجة إلى المشرف. الآن انخفضت الحاجة إلى المشرف بشكل كبير ، على الرغم من أن مؤهلات المشرف مطلوبة الآن أعلى. ربما ، في الإصدار 15 ، سيكون مفهوم "admin" DB شيئًا من الماضي :)

نعم ، و Pl / SQL أكثر تفكيرًا من الآخرين ، على الرغم من أن هذا ليس C # :). صحيح ، هذا فرد بحت.

حسنًا ، لم أتطرق إلى الأشياء التي تساعد بشكل ضعيف في السرعة.

PSS ونعم ، بالكاد أتذكر جميع الاحتمالات. فقط تلك التي كانت على "السطح" لذلك أضف في التعليقات. سوف أدرج في التحديث.

Source: https://habr.com/ru/post/ar422669/


All Articles