الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

استفسار عن استعلام

Featured Replies

بتاريخ:

السلام عليكم

لدي استعلام

SELECT e.employee_id, j.job_title, e.salary, d.department_name
FROM employees e, jobs j, departments d
WHERE e.employee_id < 103
AND e.job_id = j.job_id
AND e.department_id = d.department_id;

 اريد ان اعرف كم من الزمن استغرق هذا الاستعلام وكم من الذاكرة استخدم

وهل يمكن تحسين هذا الاستعلام وتقليل الزمن ومساحة الذاكرة

بتاريخ:
  • كاتب الموضوع

الرجاء مساعدتي

بتاريخ:

هل حد علمي

الـ optimizer كده كده هو اللي بيحدد الجملة تتنفذ ازاي

بيشوف انسب طريقة ينفذ بيها الجملة من ناحية الـ performance ويعملها

والله اعلم

بتاريخ:
  • كاتب الموضوع

الا يوجد امر في sql يقوم بهذا ؟

بتاريخ:

الا يوجد امر في sql يقوم بهذا ؟

والله يا باشا انا معرفش , انا كل اللي اعرفه ( علي أد منا فاكر يعني)

ان في حاجة اسمها hard parsing and soft parsing

كل واحدة فيهم بتعدي بكذا مرحلة منهم مرحلة الـ optimizer اللي عندها الجملة بتتحدد هتتنفذ ازاي

ممكن تقرأ انت بقى عن الموضوع

ونصيحة اخوية , معتقدش ان حد هنا هيجاوبك , كله بيجري علي اكل عيشه , اسأل في منتدي اوراكل احسن لو الانجليزي بتاعك معقول , هتلاقي هناك ناس خبرة عشرين ناس وزيادة يردوا عليك بأدق التفاصيل

كلامهم عنب بصراحة

لكن هنا موعدكش

بتاريخ:

السلام عليكم

استخدم:

 

SQL> set timing on;


SQL> SELECT e.employee_id, j.job_title, e.salary, d.department_name
FROM employees e, jobs j, departments d
WHERE e.employee_id < 103
AND e.job_id = j.job_id
AND e.department_id = d.department_id;
بتاريخ:

نأسف اخي ياسين عثمان على عدم الرد ولكن ذلك نظرا لإجازة نهاية الاسبوع.

 

كما ارى ان الاخ احمد حسن قام لارد على استفسارك الاول وهو "كم الزمن المستغرق".

 

اما بالنسبة للمساحة المستخدمة فتستطيع اخي عمل الاتي 

SQL> set autotrace traceonly
SQL> set timing on
SELECT e.employee_id, j.job_title, e.salary, d.department_name
FROM employees e, jobs j, departments d
WHERE e.employee_id < 103
AND e.job_id = j.job_id
AND e.department_id = d.department_id;

ومن ثم سيظهر لك execution Plan "خطة تنفيذ الجملة"  وهي الية التنفيذ االمتبعة من قبل Oracle Optimizer وهنا يدخل الكثير من امور التحسين "optimization" المتشعبة والمعقدة.

في اخر جزء من المخرجات ستجد شيئا مثل:

Statistics
----------------------------------------------------------
       2393  recursive calls
          0  db block gets
     398991  consistent gets
          0  physical reads
       1960  redo size
       1267  bytes sent via SQL*Net to client
        251  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          5  sorts (memory)
          0  sorts (disk)
          2  rows processed

consistent gets : هو الذكراة المستخدمة من ال Buffer Cache  لهذه الاستعلامة.

اما عن سؤالك الاخير فهو بحر اخي الكريم لايمكن حصره في رد.

 

اما بالنسبة لإسلام اعتقد انو كتييير افاده.. فاتمنى عزيزي الفاضل اذا كان عندك معلومات ادلي بها والا "فمتتشكرين"

 

تحياتي

بتاريخ:
  • كاتب الموضوع

جزاكم الله خيرا وبارك الله فيكم

بتاريخ:
  • كاتب الموضوع

داير اغير في الاستعلام دا استخدم اي join اخري لاكن تعطي نفس النتيجة .... كيف؟

SQL> set autotrace traceonly
SELECT e.employee_id, j.job_title, e.salary, d.department_name
FROM employees e, jobs j, departments d
WHERE e.employee_id < 103
AND e.job_id = j.job_id
AND e.department_id = d.department_id;

بتاريخ:

نأسف! السؤال غير واضح

بتاريخ:
  • كاتب الموضوع

الاخ / حامد

عايز جملة اخرى تعطي نفس مخرج الاستعلام السابق

مثلا:1- SELECT dname, deptno
   FROM dept
   WHERE deptno NOT IN
      (SELECT deptno FROM emp);

 

2-SELECT dname, deptno
FROM dept
WHERE NOT EXISTS

(SELECT deptno
FROM emp
WHERE dept.deptno = emp.deptno);

  كلهم يعطوا مخرج واحد  مع اختلاف الزمن والمساحة

تم تعديل بواسطة ياسين عثمان ادريس

بتاريخ:

اعتقد انك تريد شيئا مثل:

 SELECT d.dname, d.deptno
     FROM dept d, emp e
   WHERE e.deptno (+) = d.deptno
and e.deptno is null;

تساوي == 

 SELECT dname, deptno
   FROM dept
   WHERE deptno NOT IN
      (SELECT deptno FROM emp);
 

 

وقس على ذلك..

 

ارجو ان اكون قد فهمت سؤالك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.