- در مورد سرعت باید بگویم طبق امتحانی که کردم وقتی یک نفر table ی را با یک آدرس شبکه use میکند سرعت SEEK و ذخیره اطاعات تا حدود 10 برابر سریعتر است از موقعی که یک نفر دیگر هم آن TABLE را فقط USE کند.
این مسئله کاملا به WINDOWS مربوط میشود ، این را از اینجا میگویم که در HELP ویژوال فاکس پرو به هیچوجه در این مورد صحبتی نشده ، و بالعکس WINDOWS در مورد روش برخورد با کسانی که از فایل share شده در شبکه استفاده میکنند نوشته هایی دارد که این موضوع را تایید میکند.
WINDOWS که مسئول فایلهاست ، وقتی برنامه ای فایلی را از یک آدرس شبکه باز میکند ، به Windows Client اجازه میدهد که تغییرات را مرتبا بر روی دیسک SERVER ننویسد و نخواند بلکه آنها را یکبار برای همیشه روی کامپیوتر خودش CACHE کند، دقت کنید که روح آن برنامه از این موضوع خبر ندارد.
به محض اینکه برنامه دیگری از یک کامپیوتر دیگر همان فایل را خواست باز کند ، WINDOWS server به WINDOWS client که برنامه اول روی آن اجرا بود میگوید که اطلاعات را بر روی دیسک server بنویس و CACHE بازی دیگه تموم ، حالا همه باید مستقیم با دیسک SERVER کار کنند چون دیگر تنها نیستی. (این قضیه درست است چون از دید همه ، برنامه اول فایل روی SERVER را تغییر داده ، در حالی که تغییر در CACHE با تغییر فایل در دیسک SERVER متفاوت است)
همین موقع است که سرعت نفر اول کم میشود.
البته این کم شدن سرعت موقعی محسوس هست که بانکها خیلی حجیم باشد یا سرعت شبکه خیلی کم باشد چون مثلا اگر هر دستور replace ،زمان 0.0004 ثانیه طول بکشد ، و شما 100 بار این دستور را در اون پروسه ای که در حال اجرا شدن است داشته باشید کلا میشود 0.04 ثانیه که اگر این بحثی که بالا کردم 10 برابر هم سرعت را کم کند ، سرعت اجرای برنامه شما میشود 0.4 ثانیه که باز قابل حس نیست.
این موضوع را وقتی کشف کردم برایم خیلی جالب بود ، وقتی دیدم دوست دیگری به چیزی مانند این اشاره کرده ، خواستم کشف خود را اینجا بنویسم.