از آنجائيکه اطلاع رسانی ، برنامه های کاربردی بر مبنای Web و نياز وجود پايگاههای داده بر روی اينترنت از موضوعات مطرح اين سالها گرديده است ، بر آن شديم که تحقيقاتی در زمينه تکنولوژی های موجود دراين زمينه انجام دهيم . هدفی که در اين تحقيق دنبال می کرديم پيدا کردن ترکيبی مناسب از تکنولوژيهای پايگاه داده و تکنولوژيهای پردازش سمت Server ، از لحاظ سرعت و هزينه ای بود که بابت اين تکنولوژيها بايد پرداخت میشد.

برای اين منظور Benchmark ای طراحی گرديده و برای ترکيبهای مختلفی از پايگاههای داده و تکنولوژی ها سمت Server اين Benchmark اجرا شده است ؛ جدولی که در ادامه آمده است بيانگر نتيجه اجرای اين آزمايش می باشد .

Sql Server Oracle Access MySql
Started  18:36:22 Started  18:33:47 Started  18:42:43 Started  19:08:47 PHP
Finished  18:37:19 Finished  18:35:25 Finished  18:43:08 Finished  19:09:00
243573  records found 243573  records found 243573  records found 243573  records found
57 secs 1 min ,38 secs 25 secs 13 secs
Started  9:42:40 Started  18:32:59 Started  18:41:52 Started  19:5:13 ASP
Finished  9:47:24 Finished  18:33:16 Finished  18:42:19 Finished  19:5:36
243573  records found 243573  records found 243573  records found 243573  records found
4 mins ,44 secs 17 secs 27 secs 23 secs
Started  19:29:34 Started  19:10:34 Started  19:11:58 Started  19:11:28 JSP
Finished  19:29:40 Finished  19:11:07 Finished  19:12:06 Finished  19:11:45
243573  records found 243573  records found 243573  records found 243573  records found
6 secs 33 secs 8 secs 17 secs

در آزمايشی که انجام شد مشخصات ابزارهای بکار گرفته شده به صورت پيرو قرار داشت :
  • MySQL 3.23.40
  • Oracle 8.i Personal Edition
  • SQL Server 2000 Standard Edition
  • PHP 4.0.4p11
  • ASP 3
  • Java 2/JDK 1.3/Jakarta-tomcat – 3.2.3
اين تست برای پايگاه داده
mySQL – سريعترين تکنولوژی سمت Server را PHP معرفی کرد .
Access - سريعترين تکنولوژی سمت Server را Java Servlet معرفی کرد .
Oracle - سريعترين تکنولوژی سمت Server را ASP معرفی کرد .
SQL Server - سريعترين تکنولوژی سمت Server را Java Servlet معرفی کرد .

نتيجه گيريهای صورت گرفته به صورت زير می باشد :
PHP با mySQL سريعتر عمل می نمايد.
ASP با Oracle سريعتر عمل می نمايد.
Java Servlet با SQL Server سريعتر عمل می نمايد.

ترين ها :

سريعترين ترکيب پايگاه داده و تکنولوژی سمت Server ترکيب Java Servlet و SQL Server می باشد .
کند ترين ترکيب پايگاه داده و تکنولوژی سمت Server ترکيب ASP و SQL Server می باشد .

مشخصات ماشين ها :
Oracle بروی يک ماشين Compaq ، PentiumIII 600 مگاهرتز و 256 مگابايت حافظه اصلی با سيستم عامل Windows 2000 Advanced Server SP2 اجرا شده است.
SQL Server بروی يک ماشين Compaq ، PentiumIII 500 مگاهرتز و 256 مگابايت حافظه اصلی با سيستم عامل Windows 2000 Advanced Server SP2 اجرا شده است.
MySQL بروی يک ماشين Compaq ، PentiumIII 500 مگاهرتز و 256 مگابايت حافظه اصلی با سيستم عامل Windows 2000 Advanced Server SP2 اجرا شده است.
Access بروی يک ماشين Compaq ، PentiumIII 600 مگاهرتز و 512 مگابايت حافظه اصلی با سيستم عامل Windows 2000 Advanced Server SP2 اجرا شده است.
PHP و ASP بروی IIS در يک ماشين Compaq ، PentiumIII 600 مگاهرتز و 512 مگابايت حافظه اصلی با سيستم عامل Windows 2000 Professional SP2 اجرا شده است .
Java Servlet بروی Tomcat و در همان ماشينی که ASP و PHP اجرا می شوند اجرا شده است.

و برای اطلاع دقيقتر لازم به توضيح است که :
ماشين PentiumIII ای که دارای پردازنده 600 مگاهرتز با 512 مگابايت حافظه اصلی بود از يک هارد ديسک 12.1 گيگابايتی Seagate با سرعت 5200 دور در دقيقه استفاده می کرد.
ماشين PentiumIII ای که دارای پردازنده 500 مگاهرتز با 256 مگابايت حافظه اصلی بود از يک هارد ديسک 12.6 گيگابايتی Seagate با سرعت 5200 دور در دقيقه استفاده می کرد.
ماشين PentiumIII ای که دارای پردازنده 600 مگاهرتز با 256 مگابايت حافظه اصلی بود از يک هارد ديسک9.3 گيگابايتی Seagate با سرعت 5200 دور در دقيقه استفاده می کرد.

نکات مطرح و عوامل تست :
در زمان اجرا تست هر ماشين تنها دارای يک Client متصل به آن بوده است و تنها ، نرم افزار پايگاه داده بروی آن در حال اجرا بود. در مورد نرم افزار WebServer تنها پروسه در حال اجرا در سمت Server همين نرم افزار و در سمت Client تنها يک Web Browser ( IE 6.00 beta 2 ) در حال اجرا بود .
پايگاه داده دارای 243573 رکورد بوده است . پايگاه داده های Oracle ، mySQL ، Access و SQL Server همگی از شمای زير استفاده کرده بوده اند:

id – INT (signed, not null) [number in Access]
character – CHAR (1) ( signed not null ) [text in Access]
quote – VARCHAR(255) ( signed not null ) [text in Access]

  • همه جداول بروی فيلد id ايندکس گذاری شده اند و کليد اصلی جداول هم همين است . هيچ کدام از نرم افزار های بهينه سازی بروی داده ها استفاده نشده است .
  • جمله SQL بکار رفته شده "SELECT * FROM tablename" بوده است و زمانهای نوشته شده زمان قبل و بعد از اتصال به پايگاه داده می باشند .
  • يک INT در همه زبانها به عنوان شمارشگر برای شمارش رکورد ها استفاده شده است .
  • Oracle بروی يک ماشين سريعتر از ماشينهای SQL Server و mySQL اجرا شده است .بهرجهت Oracle حداقل 256 مگابايت حافظه اصلی را پيشنهاد می کند و موارد معمول آن دوبرابر اين مقدار است در ضمن نرم افزار تست برای تمام پايگاه داده ها بروی يک سخت افزار اجرا شده است .
  • پايگاه داده تنها پروسه در حال اجرا بروی آن ماشين بوده است ، به غير از سرويس های سيستم ( برای مثال : SQL Server Service در زمان اجرا mySQL ، Shut down شده است و به همين ترتيب برای بقيه پايگاههای داده ).
  • Access بروی ماشينی اجرا شده است که دو برابر ماشين پايگاه داده های ديگر حافظه اصلی دارد و در ضمن به صورت محلی اجرا شده است نه بروی يک شبکه .
  • Java Servlet کامپايل شده بوده است .


نتيجه گيری نهائی :


به عنوان نتيجه گيری نهائی می شود عنوان کرد که بهترين ترکيب و کم هزينه تري آن ترکيب mySQL و PHP می باشد .

مراجع:
اين مقاله بر اساس تحقيقات به عمل آمده از سايتهای تخصصی برنامه نويسی در اينترنت تهيه شده است.

 
شركت ارتباط گستر همراهان