"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > Inner Join vs. Where in Oracle: ما هو الفرق الحقيقي في الأداء؟

Inner Join vs. Where in Oracle: ما هو الفرق الحقيقي في الأداء؟

نشر في 2025-02-11
تصفح:100

Inner Join vs. WHERE Clause in Oracle: What's the Real Performance Difference?

Inner انضم إلى Oracle with Where Colte

]

في قاعدة بيانات Oracle ، فإن الفرق بين الانضمام إلى جدولين باستخدام الشبكة (Join Inner) و Hinge Pluge يمثل مشكلة شائعة. في حين أن هناك اختلافات طفيفة بين الاثنين في بعض المواقف ، فإن الاختلافات الشاملة في الأداء غالباً ما تكون ضئيلة.

المثال التالي:

Select * from Table1 T1 
Inner Join Table2 T2 On T1.ID = T2.ID

إلى جانب

Select * from Table1 T1, Table2 T2 
Where T1.ID = T2.ID

يؤدي كلا الاستعلامات نفس العملية: صفوف Concatenate في Table1 مع صفوف في Table2 بناءً على المساواة في عمود المعرف. لفهم هذا بشكل أفضل ، دعنا ننشئ جدولين عينة:

CREATE TABLE table1 (
  id INT,
  name VARCHAR(20)
);

CREATE TABLE table2 (
  id INT,
  name VARCHAR(20)
);

قم بتشغيل خطة التنفيذ للاستعلام باستخدام الاتصالات:

-- 使用内连接
EXPLAIN PLAN FOR
SELECT * FROM table1 t1
INNER JOIN table2 t2 ON t1.id = t2.id;

SELECT *
FROM TABLE (DBMS_XPLAN.DISPLAY);

... احصل على الإخراج التالي:

-- 0 select statement
-- 1 hash join (access("T1"."ID"="T2"."ID"))
-- 2 table access full table1
-- 3 table access full table2

وبالمثل ، فإن خطة التنفيذ لاستعلام باستخدام جملة WHERE:

-- 使用 WHERE 子句
EXPLAIN PLAN FOR
SELECT * FROM table1 t1, table2 t2
WHERE t1.id = t2.id;

SELECT *
FROM TABLE (DBMS_XPLAN.DISPLAY);

... إرجاع الإخراج التالي:

-- 0 select statement
-- 1 hash join (access("T1"."ID"="T2"."ID"))
-- 2 table access full table1
-- 3 table access full table2

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

لذلك ، فإن اختيار استخدام intra-join أو نقطة حيث يعتمد شرط في Oracle بشكل أساسي على التفضيلات الشخصية أو الاحتياجات المحددة لمخطط قاعدة البيانات أو الاستعلام المستخدم.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3