View Full Version : سوال: دلیل دیر محاسبه کردن کد Sql سرور
darrudi
چهارشنبه 27 مهر 1390, 23:05 عصر
سلام خدمت دوستان برنامه بنویسم
یک دردسر اساسی دارم در مورد یک تکه کد حیاتی
سوال : زمانی که من برای مجموع مبلغ فاکتور هر قلم کالا اضافه میکنم زمانی که من به سرعت کالای
خودم رو اضافه میکنم مجموع مبلغ را به من نمیده و در صورتی به من مجموع درست را میده که من ۲ ثانیه
دیر تر اضافه کنم
این تکه کد من :
ADOSearch.SQL.Text:=
'Select sum(Cost) from frosh '+
'Where Sh_factor='+quotedstr(sEdit5.Text);
ADOSearch.Active:=true;
vcldeveloper
پنج شنبه 28 مهر 1390, 00:23 صبح
همچین کدی یا باید به صورت SP در سمت سرور نوشته بشه، یا حداقل به صورت یک کوئری پارامتریک نوشته بشه، نه اینکه هر بار دستور SQL از نو نوشته بشه. فقط کلی وقت صرف آماده کردن دستور SQL تغییر داده شده میشه! جدای از اون، مسائل مختلف دیگه مثل تاخیر در ارسال و دریافت داده بین سرور و کلاینت و غیره هم می تونند در کاهش سرعت نقش داشته باشند.
یوسف زالی
پنج شنبه 28 مهر 1390, 22:59 عصر
سلام.
جناب کشاورز "فقط کلی وقت صرف آماده کردن دستور SQL تغییر داده شده میشه!" رو می شه توضیح بیشتری بفرمایید؟
منظورتون که کار با رشته نیست :لبخند:
در دلفی برای آماده کردن کدهای دیتابیسی آیا زمان مصرف میشه؟ چرا؟
ممنون می شم در این باره کمی مطلب رو باز کنید.
vcldeveloper
جمعه 29 مهر 1390, 23:51 عصر
جناب کشاورز "فقط کلی وقت صرف آماده کردن دستور SQL تغییر داده شده میشه!" رو می شه توضیح بیشتری بفرمایید؟
منظورتون که کار با رشته نیست :لبخند:
در دلفی برای آماده کردن کدهای دیتابیسی آیا زمان مصرف میشه؟ چرا؟
ممنون می شم در این باره کمی مطلب رو باز کنید.
هر کوئری توسط موتور بانک اطلاعاتی پارس میشه، تحلیل میشه، براش یک Execution Plan ساخته میشه، و مبتنی بر اون، داده ها از جداول واکشی میشند. کوئری که دائما تغییر کنه، تمام این مراحل براش تکرار میشه، اما یک کوئری پارامتریک در اجرای اولش این مراحل براش انجام میشه، ولی چون در اجراهای بعدی فقط پارامترها تغییر می کنند، بخش عمده این مراحل تکرار نمیشه، و مشابه Stored Procedure در سمت موتور بانک اطلاعاتی اجرا میشه.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.