بعضی وقت ها حس می کنم به عنوان یک توسعه دهنده نرم افزار عادت کرده ام به یک مدل تفکر قالبی که در آن جواب همه چیز را به شکل برنامه نویسی و توسعه نرم افزار می بینم بدون این که ارزش بالایی برای دیگر گزینه ها قائل باشم. انگار تنها چیزی که همه مسائل کسب و کار را حل می کند کد نویسی و استفاده صرف از پلتفرمی است که من با آن کار می کنم.
چند وقت پیش که در حال مطالعه بعضی مباحث مرتبط با Data Warehouse و OLAP بودم، برای بار چندم به این نتیجه رسیدم که در خیلی از راه حل ها می توانیم به جای یک دیتابیس عملیاتی حجیم و پر کار، یک Data Warehouse داشته باشیم و برخی گزارشات کند و سنگین را با کمک OLAP تهیه کنیم. حتی ساده تر از آن، خیلی اوقات می توانیم یک دیتابیس عملیاتی داشته باشیم در کنار یک دیتابیس آرشیو یا دیتابیس گزارشات، به نحوی که هر یک سال یک بار داده های عملیاتی را به دیتابیس آرشیو منتقل کنیم تا در سیستم عملیاتی دچار مشکلات حاد Performance نشویم.
بیشتر برنامه نویس ها، توسعه دهنده ها، مدیر پروژه ها و دست اندرکان توسعه محصولات نرم افزاری به دفعات با سیستم هایی برخورد کرده اند که Performance یکی از مشکلات همیشگی آن است. این موضوع خصوصا در سیستم های متوسط و بزرگ قابل مشاهده هستند. کم نیستند محصولات و solutionهایی که صرفا به خاطر کندی در حال جایگزین شدن هستند. جالب اینجاست که بخش قابل توجهی از این کندی ها ناشی از دیتابیس است، به شکلی که اگر دیتابیس عملیاتی از دیتابیس گزارشات و آرشیو جدا می شد، حداقل بخشی از این کندی هم برطرف می شد.
البته فقط من توسعه دهنده نوعی نیستم که باید تغییراتی در نحوه نگاهم به مسائل و راه حل ها بدهم، بلکه کل تیم و مدیریت هم باید سعی کند کمی انعطاف پذیری به خرج دهد. در شرکت های کوچک و متوسط خیلی سخت می توان عامل تصمیم گیری را به استفاده از دو دیتابیس به جای یک دیتابیس قانع کرد. قوه تصمیم گیری دوست ندارد Integration خوب، Deploy آسان و نگهداری کم هزینه را به این راحتی ها از دست بدهد. او دوست دارد با یک کد واحد همه چیز را هندل کند، او دوست ندارد به کارفرما بقبولاند که برخی گزارشات را نباید به طور Online تهیه کند، بلکه باید در سیکل های یک روزه منتظر بماند تا دیتا رفرش شود. این وسط کارفرما هم بی تقصیر نیست. او هم با شناخت ضعیفی که از سیستم دارد و یا شاید به خاطریت محدودیت هایی که در حوزه های دیگر دارد، اصرار دارد که گزارشات ده سال پیش سیستم هم در هر لحظه همراه با تمام دیتای اخیر دم دستش آماده استفاده باشد.
به نظرم می آید که لازم است بعضی وقت ها از نگاه یک فرد غیر برنامه نویس به قضیه نگاه کنیم. از نگاه یک مهندس صنایع، یک مدیر، یک IT Man و حتی یک کاربر روزمره سیستم. شاید این طور بهتر توانستیم نقاط ضعف سیستم را بهبود دهیم یا آن را بهینه تر و کامل تر کنیم.