![]() |
|
اي استعلام اسرع وافضل بحسب المعطيات هذه - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : اي استعلام اسرع وافضل بحسب المعطيات هذه (/showthread.php?tid=12045) |
اي استعلام اسرع وافضل بحسب المعطيات هذه - Delphi4Us - 23-08-2022 هنا اجريت استعلامين يؤديان نفس المهمة ولكن لاحظت ان احدهما يبدو اسرع من الثاني فيبدو ان العبارة Join لست الخيار الأمثل عند الرغبة في التنفيذ بشكل اسرع الاستعلام الاول كود : select
groubs.id,
groubs.groub_name,
count( sanf.id ) count_of_id
from groubs
inner join sanf on (groubs.id = sanf.f_class)
group by
groubs.id,
groubs.groub_nameالنتيجة كود : Query
------------------------------------------------
Plan
------------------------------------------------
Query Time
------------------------------------------------
Prepare : 0.00 ms
Execute : 15.00 ms
Avg fetch time: 1.67 ms
Memory
------------------------------------------------
Current: 34,972,744
Max : 35,020,976
Buffers: 2,048
Operations
------------------------------------------------
Read : 1
Writes : 0
Fetches: 3,903
Marks : 0
Enchanced Info:
+-------------------------------+-----------+-----------+-------------+---------+---------+---------+----------+----------+----------+
| Table Name | Records | Indexed | Non-Indexed | Updates | Deletes | Inserts | Backouts | Purges | Expunges |
| | | Total | reads | reads | | | | | | |
+-------------------------------+-----------+-----------+-------------+---------+---------+---------+----------+----------+----------+
|GROUBS | 12 | 648 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
|SANF | 648 | 0 | 648 | 0 | 0 | 0 | 0 | 0 | 0 |
+-------------------------------+-----------+-----------+-------------+---------+---------+---------+----------+----------+----------+الاستعلام الثاني كود : select
groubs.id,
groubs.groub_name,
(select count(id) from sanf where sanf.f_class = groubs.id)
from groubsالنتيجة كود : Query
------------------------------------------------
Plan
------------------------------------------------
Query Time
------------------------------------------------
Prepare : 0.00 ms
Execute : 0.00 ms
Avg fetch time: 0.00 ms
Memory
------------------------------------------------
Current: 34,972,744
Max : 35,020,976
Buffers: 2,048
Operations
------------------------------------------------
Read : 0
Writes : 0
Fetches: 1,352
Marks : 0
Enchanced Info:
+-------------------------------+-----------+-----------+-------------+---------+---------+---------+----------+----------+----------+
| Table Name | Records | Indexed | Non-Indexed | Updates | Deletes | Inserts | Backouts | Purges | Expunges |
| | Total | reads | read | | | | | | |
+-------------------------------+-----------+-----------+-------------+---------+---------+---------+----------+----------+----------+
|GROUBS | 0 | 0 | 12 | 0 | 0 | 0 | 0 | 0 | 0 |
|SANF | 0 | 648 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+-------------------------------+-----------+-----------+-------------+---------+---------+---------+----------+----------+----------+[size=1] [/size]
RE: اي استعلام اسرع وافضل بحسب المعطيات هذه - Mr.DOS - 23-08-2022 سلام عليكم قم بحذف كود : group by
groubs.id,
groubs.groub_nameثم جرب المقارنة مرة ثانية . RE: اي استعلام اسرع وافضل بحسب المعطيات هذه - Delphi4Us - 23-08-2022 إقتباس :ثم جرب المقارنة مرة ثانية . لن يقبل ان Group اجباري طالما استخدمت Joint الا بحال كانت كل الحقول تحت تحت تأثير احدى الدوال مثل Sum او count او ماشابه RE: اي استعلام اسرع وافضل بحسب المعطيات هذه - Mr.DOS - 23-08-2022 سلام عليكم اكيد كنت اقصد group واحد فقط وليكن groubs.id بيانات الجدول في مثالك ليست بالقدر الذي يسمح لك عمل مقارنة للاستعلام جرب على جدولين حجم البيانات يكون اكبر اكيد راح ترفع القبعة للـ join وراح تتفن في عمل having سوف يتطور استعلامك ليضم select + joins + group by + having + order by يوما ما .. وتتذكر select top 100 مثلا لتفادي النجمة * وربح بعض الاجزاء من الثواني .... و ستكون مظطر ايضا لعمل distinct هده سيناريوهات قد مررت بها ... هنا وفي هذه المرحلة بالضبط يمكن المقارنة بين الاستعلامات . |