PDA

View Full Version : سوال: یک بانک اطلاعاتی در دلفی باید اینقدر کند باشه ؟



Iman_1365
یک شنبه 12 شهریور 1391, 01:02 صبح
سلام
چندی پیش به پیشنهاد یکی از دوستان نسخه تحت شبکه حسابداری پارسیان رو برای یک فروشگاه بزرگ نصب کردم
چون طرف زیاد حرفه ای نبود ویندوز اکس پی و نسخه SQL Server 2000 Personal رو نصب کردم به اضافه 5 کلاینت که به این سیستم شبکه کردم
هنوز چند ماه سپری نشده در یک دیتایس 50 مگابایتی اینقدر دسترسی به اطلاعات بعضی اجناس کند شده چند ثانیه زمان میبره تا مشخصات کالا در فاکتور فروش ظاهر بشه و یا حتی دسترسی به رکورد کالا در هنگام سرچ با تاخیر چند ثانیه ای همراه است

سیستم ها رو ارتقا دادم - کابل کشی رو هم عوض کردم بازم تغییری در سرعت دسترسی به دیتا بیس مشاهده نشد تنها نکته ای که به ذهن من میرسه پائین بودن سرعت SQL Server 2000 نسخه شخصی است مثلا یک کالا که 20000 عدد ازش فروش رفته رو دیگه نمیشه بهش دسترسی داشت

یادمه یکبار با همین مشکل در حسابداری هلو رو به رو شدم که طرف بی خیال برنامه حسابداری شد
زبان برنامه نویسی این دو نرم افزار حسابداری دلفی - گزارش فست ریپورت و بانک اطلاعاتی SQL Server 2000 است

مشکل چیه ؟ ایا شما هم یک چنین مشکلی داشتین - راه حل اش چیه ؟

BORHAN TEC
یک شنبه 12 شهریور 1391, 01:58 صبح
سلام
این مشکل می تواند دلایل مختلفی داشته باشد، از جمله: اشتباهات برنامه نویسان در نوشتن کدها(مثل بافر کردن تعدادی زیادی از رکوردها در سمت کلاینت و...)، اشتباهات طراحان نرم افزار و بانک اطلاعاتی(مثل طراحی جداول، ایندکس گذاریها و ...)، انتخاب نادرست تکنوژی کار با بانکهای اطلاعاتی(مثل انتخاب ADO به جای کامپوننتهای شرکت devart و ...) و ... . توجه داشته باشید کهدلفی حقیقتاً یکی از بهترین ابزارهای موجود برای کار با بانکهای اطلاعاتی است.
متاسفانه بسیاری از شرکتها در ساخت نرم افزارهای خود کم دقتی می کنند و بعد از مدتی مشاهده می شود که نرم افزار کار خود را به درستی انجام نمی دهد. یکی از مهمترین مسائل این است که اکثر شرکتها نرم افزار نهایی ساخته شده توسط خودشان را به درستی تست نمی کنند و فقط به تستهای ابتدایی بسنده می کنند.:افسرده:

Felony
یک شنبه 12 شهریور 1391, 06:49 صبح
انتخاب نادرست تکنوژی کار با بانکهای اطلاعاتی(مثل انتخاب ADO به جای کامپوننتهای شرکت devart و ...)
ADO ممکنه کمی تفاوت سرعت یا امکانات رو داشته باشه ولی هیچ وقت نباید باعث همچین مشکلاتی بشه ، ده ها برنامه پزشکی ، حسابداری ، اتوماسیون و ... ( ایرانی و خارجی ) رو دیدم که با استفاده از ADO استاندارد دلفی سال هاست دارن عالی کار میکنن .

@Iman_1365 : نسخه SQL Server 2000 ی که نصب کردی چی هست ؟ Standard , Developer , Enterprise یا ... ؟

Mehdi Naderi
یک شنبه 12 شهریور 1391, 08:36 صبح
من هم در چند برنامه حسابداری همین مشکل رو داشتم وقتی تعداد فاکتورها زیاد میشه مثلا در یک فروشگاه با 2000 قلم جنس و صدور روزانه حداکثر 1500 فاکتور فروش در روز و سرعت رشد دیتابیس حداکثر 3 مگابایت در روز اقلام پرفروشی که به دفعات در هر فاکتور ظاهر میشن سرعت دسترسی به آنها از طریق جستجو و یا خواندن بارکد توسط بارکدخوان بسیار کند عمل میکنند و چند ثانیه زمان میبره تا مشخصات آنها در جدول فروش (فاکتور ظاهر بشه) و یا وقتی قراره بصورت دستی و بدون بارکدخوان کالا رو جستجو کنید وقتی در جدول میرسین روی کالای مورد نظر یعنی روی رکورد اون با زدن کلید مکان نما در صفحه کلید چند ثانیه ای طول میکشه تا بره سراغ رکورد بعدی

Iman_1365
یک شنبه 12 شهریور 1391, 08:39 صبح
نسخه SQL Server 2000 ی که نصب کردی چی هست ؟ Standard , Developer , Enterprise یا ... ؟



بخاطر سادگی و اینکه در یک فر وشگاه اپراتورها زیاد حرفه ای نیستند مجبور شدم ویندوز اکس پی سرویس پک 3 نصب کنم و بانک اطلاعاتی SQL Server 2000 نسخه Personal است و روی کلاینت ها Desktop Engine 2000 نصب کردم

ایا به نظر شما میشه نسخه هلای بالاتر SQL Server مانند 2005 یا 2008 نصب کرد یا اینگونه برنامه ها فقط با همون نسخه 2000 جواب میدن؟

از خطاهای برنامه نویسی برنامه که بگذریم چون دیگه نمیشه کاریش کرد چه راهکارهایی برای افزایش سرعت برامه و بهبود عملکرد SQL Server وجود دارد آخه حجم بانک من 50 مگابایت بیشتر نیست و نهایتش با رشد روزانه ممکنه برسه به 700 مگ تا اخر سال که برای یک بانک اصلا حجم بالا محسوب نمیشه چون من برنامه هایی با دات نت نوشتم که بخاطر ذخیره تصویر بانک اون بین 10 تا 50 گیگابایته و هیچ افت سرعتی هم ندیدم

[/QUOTE]

Felony
یک شنبه 12 شهریور 1391, 10:31 صبح
بخاطر سادگی و اینکه در یک فر وشگاه اپراتورها زیاد حرفه ای نیستند مجبور شدم ویندوز اکس پی سرویس پک 3 نصب کنم و بانک اطلاعاتی SQL Server 2000 نسخه Personal است و روی کلاینت ها Desktop Engine 2000 نصب کردم
اشتباه کردی !
الکی که نمیان رو یک نسخه اسم بزارن ، اون نسخه برای استفاده شخصی هست و تا 1 گیگابایت از حافظه رو میتونه استفاده کنه ، باید روی سرور نسخه Enterprise نصب کنید .


ایا به نظر شما میشه نسخه هلای بالاتر SQL Server مانند 2005 یا 2008 نصب کرد یا اینگونه برنامه ها فقط با همون نسخه 2000 جواب میدن؟
بله ، میتونید نصب کنید ( نسخه 2008 پیشنهاد میشه ) .


از خطاهای برنامه نویسی برنامه که بگذریم چون دیگه نمیشه کاریش کرد چه راهکارهایی برای افزایش سرعت برامه و بهبود عملکرد SQL Server وجود دارد آخه حجم بانک من 50 مگابایت بیشتر نیست و نهایتش با رشد روزانه ممکنه برسه به 700 مگ تا اخر سال که برای یک بانک اصلا حجم بالا محسوب نمیشه چون من برنامه هایی با دات نت نوشتم که بخاطر ذخیره تصویر بانک اون بین 10 تا 50 گیگابایته و هیچ افت سرعتی هم ندیدم
چون سورس برنامه رو ندارید کار خاصی از دستتون بر نمیاد ؛
1- رم سرور رو حداقل 4 گیگابایت انتخاب کنید .
2- نسخه Enterprise رو نصب کنید .
3- برای بانکتون یک job تعریف کنید و هر روز ازش پشتیبان بگیرید و هر چند وقت یک بار Shrink و سپس Index ها رو Rebuild کنید .
4- روی فیلدهایی که جست و جو زیاد روشون انجام میشه با احتیاط ایندکس بزارید و شرایط مختلف رو بررسی کنید .

در ضمن سوالتون دیگه به این بخش مربوط نمیشه ، اگر بازم سوالی بود در بخش SQL Server سایت مطرح کنید .

موفق باشید .

tdkhakpur
یک شنبه 12 شهریور 1391, 11:26 صبح
از خطاهای برنامه نویسی برنامه که بگذریم چون دیگه نمیشه کاریش کرد چه راهکارهایی برای افزایش سرعت برامه و بهبود عملکرد SQL Server وجود دارد آخه حجم بانک من 50 مگابایت بیشتر نیست و نهایتش با رشد روزانه ممکنه برسه به 700 مگ تا اخر سال که برای یک بانک اصلا حجم بالا محسوب نمیشه چون من برنامه هایی با دات نت نوشتم که بخاطر ذخیره تصویر بانک اون بین 10 تا 50 گیگابایته و هیچ افت سرعتی هم ندیدم
[/QUOTE]
گمان نمیکنم مشکل از نرم افزار باشه اون شرکتی که این نرم افزار رو طراحی کرده سالهاست سیستم حسابداریش رو فروخته اگه تا این مدت مشکلی داشته بود واحد پشتیبانی اون شرکت همه اینها رو برطرف کرده بودند.
به نظرم مشکل از سرور باشه امکان داره سخت افزار مثل فن جواب نمیده و سیستم داغ میکنه در ضمن مواردی هست که در مورد اون اینجا (http://nofa.ir/NewsBody-ID82.aspx) توضیح داده شده یه نگاهی بندازید و بند یکم رو اول از همه امتحان کنید بهتره.

Iman_1365
یک شنبه 12 شهریور 1391, 11:36 صبح
گمان نمیکنم مشکل از نرم افزار باشه اون شرکتی که این نرم افزار رو طراحی کرده سالهاست سیستم حسابداریش رو فروخته اگه تا این مدت مشکلی داشته بود واحد پشتیبانی اون شرکت همه اینها رو برطرف کرده بودند.


من این سیستم رو برای چند مشتری راه انداختم قبلا متوجه این امر شده بودم اما زیاد جدی نگرفتم و انداختن گردن سخت افزار طرف اما این مشکل الان در همه با ازدیاد تعداد فاکتورها در برنامه بخصوص برای کالاهای پرفروش برای چند فروشگاه دیگر بوجود اومده بوپژه برای کالاهایی که دانه ای و بصورت روزانه مثلا 1000 عدد در روز در 1000 فاکتور فروش دارن بوجود میاد و بقیه کالاهایی که فروش کمتری دارن زیاد تغییری در سرعت دستیابی به رکورد انها بوجود نیامده و از سرعتش راضیم



ه نظرم مشکل از سرور باشه امکان داره سخت افزار مثل فن جواب نمیده و سیستم داغ میکنه در ضمن مواردی هست که در مورد اون اینجا توضیح داده شده یه نگاهی بندازید و بند یکم رو اول از همه امتحان کنید بهتره

قبل از اینکه من این سوال رو مطرح کنم تمام موار دی که مربوط به سخت افزار باشه رو چک کردم


اشتباه کردی !
الکی که نمیان رو یک نسخه اسم بزارن ، اون نسخه برای استفاده شخصی هست و تا 1 گیگابایت از حافظه رو میتونه استفاده کنه ، باید روی سرور نسخه Enterprise نصب کنید

یعنی برای یک فروشگاه هم باید نسخه ویندوز سرور نصب بشه ؟ در این صورت هزینه سرور و ارائه پشتیبانی هم به هزینه هام اضافه میشه اما ویندوز اکس پی حداقل همه باهاش اشنان و کار کردن ضمنا میزان حافظه پشتیبانی شده در SQL Server 2000 Personal Edition فکر میکنم از 1 گیگابایت بیشتر است چون من خیلی از سیستم های درپیت ادارات رو دیدم که به رغم اینکه با همین سیستم کار میکنند و رشد دیتابیس اونها به دلیل ارباب رجوع زیاد بیشتر است بازم سرعت به مارتب زیادتری دارن

shobair
یک شنبه 12 شهریور 1391, 16:15 عصر
سلام
چندی پیش به پیشنهاد یکی از دوستان نسخه تحت شبکه حسابداری پارسیان رو برای یک فروشگاه بزرگ نصب کردم
چون طرف زیاد حرفه ای نبود ویندوز اکس پی و نسخه SQL Server 2000 Personal رو نصب کردم به اضافه 5 کلاینت که به این سیستم شبکه کردم
هنوز چند ماه سپری نشده در یک دیتایس 50 مگابایتی اینقدر دسترسی به اطلاعات بعضی اجناس کند شده چند ثانیه زمان میبره تا مشخصات کالا در فاکتور فروش ظاهر بشه و یا حتی دسترسی به رکورد کالا در هنگام سرچ با تاخیر چند ثانیه ای همراه است

سیستم ها رو ارتقا دادم - کابل کشی رو هم عوض کردم بازم تغییری در سرعت دسترسی به دیتا بیس مشاهده نشد تنها نکته ای که به ذهن من میرسه پائین بودن سرعت SQL Server 2000 نسخه شخصی است مثلا یک کالا که 20000 عدد ازش فروش رفته رو دیگه نمیشه بهش دسترسی داشت

یادمه یکبار با همین مشکل در حسابداری هلو رو به رو شدم که طرف بی خیال برنامه حسابداری شد
زبان برنامه نویسی این دو نرم افزار حسابداری دلفی - گزارش فست ریپورت و بانک اطلاعاتی SQL Server 2000 است

مشکل چیه ؟ ایا شما هم یک چنین مشکلی داشتین - راه حل اش چیه ؟


سلام

بطور مستقیم بستگی به نحوه برنامه نویسی داره حتی شاید خیلی بیشتر از سرور و سیستم عامل و نسخه اس کیو ال سرور. مثلاً اگر شما دیتاست هایی مثل جدول سمت کلاینت رو پر و خالی کنید بجای اینکه عملیات سمت سرور انجام بدید با انباشته شدن اطلاعات کند میشید.
بهتره یک سرور قوی با یک شبکه پرسرعت با سوئیچ های مرغوب رو بعنوان سخت افزار و برنامه نویسی در سمت سرور رو به عنوان روش برنامه نویسی انتخاب کنید. من سیستمی رو با استفاده از دلفی 6، SQL Server 2005 standard، یک شبکه گیگابیت و یک سرور HP ML پیاده سازی کردم که حدود 30 کلاینت داره که بطور فعالی از دیتابیس استفاده میکنن و بطور مثال سالیانه بطور متوسط 20000 حواله انبار که هر کدوم از 1 تا 15 قلم کالا داره صادر میکنن و حسابداری سندهای قطور تا 700 ردیف در هر سند میزنه ولی اینقدر کند نمیشه که اذیت بشن! ضمناً از ADO هم استفاده کردیم و مشکلی هم نداره به نظر من. در ضمن حجم دیتابیس در نیمه سال حدود 500 مگابایته. دنبال چیزهای دیگه باشید شاید مشکل از اینها نباشه.

شبیر

Mehdi Naderi
چهارشنبه 19 مهر 1391, 22:35 عصر
چندی پیش به پیشنهاد یکی از دوستان نسخه تحت شبکه حسابداری پارسیان رو برای یک فروشگاه بزرگ نصب کردم
چون طرف زیاد حرفه ای نبود ویندوز اکس پی و نسخه SQL Server 2000 Personal رو نصب کردم به اضافه 5 کلاینت که به این سیستم شبکه کردم
هنوز چند ماه سپری نشده در یک دیتایس 50 مگابایتی اینقدر دسترسی به اطلاعات بعضی اجناس کند شده چند ثانیه زمان میبره تا مشخصات کالا در فاکتور فروش ظاهر بشه و یا حتی دسترسی به رکورد کالا در هنگام سرچ با تاخیر چند ثانیه ای همراه است



فقط 50 مگابایت
من این مشکل رو دارم با این مشخصات
1- رشد دیتابیس 3 مگابایت در روز
2- سرعت دستیابی به رکوردهای مربوط به اجناسی که به دفعات در فاکتورهای روزمره تکرار میشوند مثلا پنیر X با فروش 700 عدد در روز در 500 فاکتور در روز خیلی کند و با تاخیر چند ثانیه های همراه است . ربطی به سیستم و رو و سرعت سیستم ندارد
لطفا کمک

ariobarzan
پنج شنبه 20 مهر 1391, 11:27 صبح
من یه برنامه برای شرکتی نوشتم که الان حجم دیتا بیس اون بیشتر از سی گیگه بیشتر از ده تا کاربر همزمان داره و نزدیک به پنج سال از کار اون میگذره با ado هم نوشتم اصلا هم کند نشده
در مورد مشکل شما احتمالا اگه در جای دیگه که از همین نسخه نرم افزار استفاده میشه و مشکلی نداره پس به احتمال قوی از سخت افزار سرور یا sql سرور باشه و ربطی به حجم دیتابیس و ado نداره.

Mehdi Naderi
پنج شنبه 20 مهر 1391, 18:41 عصر
من یه برنامه برای شرکتی نوشتم که الان حجم دیتا بیس اون بیشتر از سی گیگه بیشتر از ده تا کاربر همزمان داره و نزدیک به پنج سال از کار اون میگذره با ado هم نوشتم اصلا هم کند نشده
در مورد مشکل شما احتمالا اگه در جای دیگه که از همین نسخه نرم افزار استفاده میشه و مشکلی نداره پس به احتمال قوی از سخت افزار سرور یا sql سرور باشه و ربطی به حجم دیتابیس و ado نداره.

روی چند سیستم چک شده و همین مشکل رو داره
رم 8 گیگابایت - پردازنده اینتل E7500 دو هسته ای ;کارت شبکه 100MB - نوع سیم بکاررفته Cate5 - Star
سیستم عامل ویندوز XP SP3 - MiCrosoft SQL Server 2000 SP4

حمیدرضاصادقیان
پنج شنبه 20 مهر 1391, 20:17 عصر
سلام.
راه حل های ارائه شده بیشتر هزینه بردار خواهند بود.

شما ابتدا روی سیستم با استفاده از Profiler یک روز یا بیشتر عملیات کلی سیستم رو Log کنید.
بعد از این کار ، دستوراتی که بیشترین I/O رو دارند و بیشترین زمان برای اجرا رو انجام میدهند رو بررسی کنید و Execution Plan اونو بررسی کنید.
در این قسمت میتونید ببینید آیا از ایندکس مناسبی استفاده میکنه یا خیر که در صورت لزوم میتوان ایندکسهای مناسب رو روی اون ایجاد کرد که حداقل 60 درصد از مشکل شما رو حل خواهد کرد.!

barzok83
چهارشنبه 02 مهر 1393, 14:13 عصر
دوستمون از نرم افزار هلو نام بردن...در تایید حرفشون شرکت ما هم بخاطر سرعت فوق العاده پایین هلو تحت شبکه قیدشو زد....
ارتقا سخت افزاری و نرم افزاری هم جواب نداد. واسه منم سواله چطور اینقدر کاهش سرعت داشتیم...