PDA

View Full Version : اکتیو ماندن جداول



MNosouhi
چهارشنبه 01 آذر 1385, 10:35 صبح
در یه برنامه تحت شبکه ، در هنگام ایجاد فرم 5 تا جدول باید اکتیو بشن . اما در ادامه کار معمولا با 3 تا از جدولها کاری نداریم .
حالا سوال من اینه که آیا باز بودن اون 3 تا جدول اضافی ، آیا بار اضافی روی سرور میاره ؟ یعنی بهتره close شون کنم و یا اینکه چون باهاشون کار نمی کنم ، باز و یسته بودنشون فرق نداره؟

mzjahromi
چهارشنبه 01 آذر 1385, 10:36 صبح
از همه چیز که بگذریم طبق روشهای مهندسی نرم افزار بهتره اونا رو ببندید

MNosouhi
چهارشنبه 01 آذر 1385, 11:07 صبح
از همه چیز که بگذریم طبق روشهای مهندسی نرم افزار بهتره اونا رو ببندید
خب اگه واقعا فشاری به سرور وارد نمیکنه ، چرا بسته بشه ؟ اینطوری اگه نیازی به استفاده هم شد ، دیگه لازم نیست دوباره اکتیوشون کنیم .

dkhatibi
چهارشنبه 01 آذر 1385, 12:29 عصر
ممکنه تداخل امواج به وجود بیاره

MNosouhi
چهارشنبه 01 آذر 1385, 12:37 عصر
ها ، ایی که گفتی یعنی چه؟(به سبک دوو برره خوانده شود)

ghabil
چهارشنبه 01 آذر 1385, 17:07 عصر
در یه برنامه تحت شبکه ، در هنگام ایجاد فرم 5 تا جدول باید اکتیو بشن . اما در ادامه کار معمولا با 3 تا از جدولها کاری نداریم .
حالا سوال من اینه که آیا باز بودن اون 3 تا جدول اضافی ، آیا بار اضافی روی سرور میاره ؟ یعنی بهتره close شون کنم و یا اینکه چون باهاشون کار نمی کنم ، باز و یسته بودنشون فرق نداره؟
معلومه که باید بسته بشند ، باز بودن جدول یعنی گرفتن حافظه ! هم حافظه از کلاینت هم سرور (بسته به نوع کرسر) اصلا استاندارد باز کردن یک جدول :


Open;
try
....
finally
Close;
end;

اینقدر بسته شدن جداول بعد از کا باهاشون مهم هست ، اگر هم در اینترفیس نیاز به دیدن اطلاعات هست در Destructorفرم باید جدول رو ببندید.

MNosouhi
چهارشنبه 01 آذر 1385, 17:46 عصر
معلومه که باید بسته بشند ، باز بودن جدول یعنی گرفتن حافظه ! هم حافظه از کلاینت هم سرور (بسته به نوع کرسر)
خب کرسر رو از نوع کلاینت تعریف می کنیم.
آخه باز و بسته کردن جداول ، وقتی که تعداد رکوردها بالا بر ه ، اون هم تو شبکه ، زمان زیادی میگیره و اصلا جالب نیست.

vcldeveloper
پنج شنبه 02 آذر 1385, 07:28 صبح
خب کرسر رو از نوع کلاینت تعریف می کنیم.
حافظه کلاینت را بی جهت مصرف می کنید. البته چه کرسر کلاینت باشه، چه سرور، مقداری از منابع آزادسرور از طریق باز گذاشتن بی مورد جداول از بین میره. گاهی هم ممکنه یادتون بره رکوردهای خاصی را که Lock شدن آزاد کنید و مانع از دسترسی دیگران به اون رکوردها بشید. در بعضی از نسخه های بانک های اطلاعاتی هم در تعداد Connection های فعال محدودیت وجود داره.

آخه باز و بسته کردن جداول ، وقتی که تعداد رکوردها بالا بر ه ، اون هم تو شبکه ، زمان زیادی میگیره و اصلا جالب نیست.
بستگی به نوع کاربرد شما داره، مسلما باز و بسته کردن مکرر جداول در فواصل زمانی کوتاه باعث افزایش فشار به سرور و کاهش کارایی کلاینت میشه. شما به عنوان یک طراح نرم افزار باید تشخیص بدید چه موقع نیاز به بستن جداول هست.

ghabil
پنج شنبه 02 آذر 1385, 12:47 عصر
همه چیزهایی که آقای کشاورز گفت درسته به علاوه اینکه اصلا چرا باید مقدار زیادی اطلاعات رو بیاری ؟ گاهی اوقات لازمه اما من به کررات دیدم که به اشتباه مقدار زیادی دیتا لود میشه در حالی که باهاشون کاری نیست ، مثلا دیدم که مینویسند Select * From Table بعد روش یک رکود خاص رو که لازم دارند Locate میکنند در حالیکه این کار ممکنه چند هزار رکورد رو بدون دلیل لود بکنه اما خیلی راحتتر میشد یک Where ته commandText بزنند و فقط همون یک رکورد رو بیارند.