PDA

View Full Version : مبتدی: نحوه تر تیب اجرا دستور select



armiya
سه شنبه 14 اردیبهشت 1389, 19:47 عصر
با سلام خدمت عزیزان واساتید محترم :می خواستم در مورد ترتیب اجرا و خروجی دستور زیر بدونم که چطور اجرا میشه در query analyzer با تشکر:





select code,date,
(select top 1 t2.date from TVaset as t2 where t2.code > aa.code order by code ) as dd,
(select top 1 t2.code from TVaset as t2 where t2.code > aa.code order by code ) as dc
from TVaset as aa
where (select top 1 ( t2.date < aa.date) from TVaset as t2 where t2.code > aa.code order by code )
order by code

AminSobati
سه شنبه 14 اردیبهشت 1389, 22:10 عصر
سلام دوست عزیزم،
اجرای کوئری از نظر Logical و Physical میتونه به کلی متفاوت باشه. Logical ترتیبی هست که استاندارد زبان SQL ارائه میکنه ولی Physical ترتیبی هست که DBMS در پیش میگیره و به ضرورت Optimization ممکنه با ترتیب Logical تفاوت کنه. برای دیدن ترتیب Physical میتونین ctrl+L رو بزنین تا Plan بدست بیاد

محمد سلیم آبادی
سه شنبه 14 اردیبهشت 1389, 22:45 عصر
با سلام خدمت عزیزان واساتید محترم :می خواستم در مورد ترتیب اجرا و خروجی دستور زیر بدونم که چطور اجرا میشه در query analyzer با تشکر:





select code,date,
(select top 1 t2.date from TVaset as t2 where t2.code > aa.code order by code ) as dd,
(select top 1 t2.code from TVaset as t2 where t2.code > aa.code order by code ) as dc
from TVaset as aa
where (select top 1 ( t2.date < aa.date) from TVaset as t2 where t2.code > aa.code order by code )
order by code


سلام،
این کوئری که قرار دادین اصلا نباید اجرا بشه. چون در ماده ی WHERE کوئری عبارت Boolean ای وجود نداره. از طرفی داخل correlated subquery که در where وجود داره مشکل به چشم می خوره.