وبگاه شخصی حسن فتحی

امکانات منحصر به فرد SQL Server در نسخه Enterprise

نسخه SQL Server Enterprise چند امکانات داخلی منصر به فرد دارد که توانایی بالا برای بازدهی سریع در سیستم هایی با تراکنشهای بالا و پردازشهای سنگین را دارد. به عنوان مثال سیستمهای «خرید آنلاین» یا «پایانه های فروش» یا سیستمهای گزارشگیری و آنالیزی مانند Credit Reference Information System برای بانکها و بیمه ها که این امکانات و قابلیتهای پنهان در SQL Server Standard Edition موجود نمی باشد.

متاسفانه مسعولان فروش در شرکت مایکروسافت ( به عنوان مثال مایکروسافت مالزی و سنگاپور) تماما در مورد امکانات ظاهری و کلی صحبت می کنند به عنوان مثال در نسخه Enterprise چند پردازنده قابل استفاده است و یا حداکثر حافظه و قابلیتهایی مانند Business Intelligence, High Availability و البته هزینه خرید هر لایسنس برای یک پردازنده فیزیکی ( قیمت هر لایسنس برای Enterprise حدود ۲۶ هزار دلار آمریکا است) اما متاسفانه در یک سوی قضیه مشتری است که هیچ دانشی از امکانات این نرم افزار ندارد و فقط دنبال این است که هزینه لایسنس ها را تا حداکثر پایین بیاورد ولی به چه قیمت ؟ به قیمت اینکه در تراکنشهای بالا سرعت بازدهی پایین آید و امکان از دست دادن مشتریان فراهم شود؟ (البته تمامی این مثالهای در ایران قابل اجرا نیست به هزار و یک دلیل)

داستان:
یک شرکت که خدمات خرید اینترنتی و دستگاه های پایانه فروش ارایه می دهد در سرور اصلی خود به دلیل پایین آوردن هزینه ها از SQL Server Standard Edition استفاده می کند. این شرکت برای بالا بردن کیفیت خدمات خود باید دارای سرور پایگاه داده قوی و پر سرعتی باشد که بتواند تمام نیازهای گزارش گیری در یک زمان را فراهم آورد. بعد از یک سال ارایه خدمات این شرکت دچار مشکلات بزرگی از قبیل حجم بالای پایگاه داده – سرعت بازدهی پایین – نداشتن توانایی آرشیو کردن میلیونها رکرورد در چند ثانیه  بدون هزینه یا وقت اضافی. به طور کلی تمامی این مشکلات با داشتن SQL Server Enterprise Edition بر طرف می شود. پس در نتیجه این شرکت نیاز به مشاوره قبل از خرید لایسنس را داشته ولی چه افسوس که برای این موضوع بسیار دیر است.
اگر SQL Server Enterprise گران است پس در مورد SQL Server Standard چه فکر می کنید؟(برای جواب به ادامه مطلب مراجعه کنید
ادامه مطلب...
۱۰ مهر ۹۴ ، ۱۴:۴۳ ۰ نظر موافقین ۱ مخالفین ۰
حسن فتحی

با یکی از باگ های ویندوز 10 آشنا شوید

اخیرا مایکروسافت یک بسته بروزرسانی مهمی برای ویندوز 10  منتشر کرده است که به این وسیله یکی از باگ هایی که کاربران مدام از ان شاکی بودند و شکایت داشتند رفع میشود در ادامه با جزئیات بیشتر در خدمت شما هستیم.

ادامه مطلب...
۳۰ مرداد ۹۴ ، ۱۳:۳۴ ۰ نظر موافقین ۰ مخالفین ۰
حسن فتحی

حقایقی جالب در مورد اینترنت اکسپلورر

مرورگر اینترنتی Internet Explorer مایکروسافت که روزگاری محبوبیت زیادی داشت این هفته ۲۰ ساله شد و این اتفاق در حالی صورت گرفت که مایکروسافت تصمیم خود را برای بازنشسته شدن آن نهایی کرد.

ادامه مطلب...
۳۰ مرداد ۹۴ ، ۱۳:۲۸ ۰ نظر موافقین ۰ مخالفین ۰
حسن فتحی

پایان عمر علم طراحی وب فرا رسیده است

ساختار و ظاهر وبسایت های جدید هیچکدام از یک الگوی نوین که از ذهنی خلاق تراوش کرده باشد پیروی نمیکنند. سراحی وبسایت های زیبا هم اکنون انجام اموری ساده و استفاده از قالب هایی که همگی از پیش طراحی شده اند ممکن شده است. تمامی این حقایق یک مسئله مهم و تا حدودی ناراحت کننده را مطرح میکنند: عمر علم طراحی وب هم اکنون به پایان رسیده است.

طراحی زیبا ترین وبسایت ها حتی از داخل یک دفتر کوچک و یا حتی از درون منزلتان هم ممکن است و این سبب کاهش مشاغل مرتبط این حوزه و اشباع شدن بازار طراحی وب در جهان شده است. حقیقت آنست که حتی اگر یک طراح زبده را به کار بگیرید به احتمال قریب به یقین طراحی که برای شما انجام خواهد داد بسیار شبیه به طراحی های از پیش انجام شده موجود در بازار خواهد بود حتی اگر وی از جایی الگو گیری نکرده باشد. علت اینست: دیگر الگوی جدیدی برای طراحی ظاهری وبسایت ها وجود ندارد.

علاوه بر اشباع بازار قالب ها و الگو های ظاهری برای وبسایت های مختلف، شاهد وجود بازار بزرگی از سیستم های مدیریت محتوا هستیم که انجام انتشار محتوا را بر هر بستری بسیار تسریع میکنند. حتی بزرگترین شرکت های انتشاراتی و روزنامه ها هم از سیستم های مدیریت محتوای (CMS / Content Management System) معروف مانند جوملا و وردپرس استفاده می کنند. هر کسی هم اکنون با داشتن دانش اندکی از علوم طراحی وب همچون php میتواند در یک اتاق کوچک یک فروشگاه برای طراح وبسایت های کوچک و حتی متوسط راه اندازی کند. البته به علت اشباع بازار این حوزه در صورتی که اسم و برندی از خود نداشته باشد حتی اگر دارای مهارت بالایی باشد پروژه های زیادی را پذیرا نخواهد بود.

حال سوال اینست که حوزه طراحی وب هم اکنون در چه زیر شاخه هایی نیاز به فعالیت بیشتر دارد، و یا با داشتن مهارت در چه حوزه ای در این بخش میتوان هنوز هم در آمد کسب کرد؟ پاسخ بسیار ساده است! طراحی وب ممکن است به بن بست رسیده باشد و نیاز به فعالان دیگری در این حوزه احساس نشود اما برنامه نویسی وب هنوز نیاز به کار بسیاری دارد. اگر دانش نسبتا کافی از طراحی وب و زبان های مطرح در این شاخه دارید سعی کنید بیشتر به سمت فعالیت در زمینه برنامه نویسی بروید. مهارت در برنامه نویسی در حوزه وب به معنی داشتن مهارت برای برنامه نویسی به زبان هایی چون php یا ASP است که به شما کمک میکند موتور عملیاتی یک سیستم مدیریت داده را طراحی کنید. سپس با این دانش خواهید توانست موتور هایی را بر پایه وب طراحی کنید که مهمترین امور اتوماسیون اداری شرکت ها را به انجام برساند. ضمن اینکه پیاده سازی هر اتوماسیونی بر بستر اینترنت به علت بر خط بودن و ساختار ابری در عصر کنونی خواهان بیشتری خواهد داشت و بازار عمده تری برای این نوع فعالیت ها وجود دارد.


منبع: بروزرسانی

۱۶ تیر ۹۴ ، ۱۷:۰۰ ۰ نظر موافقین ۰ مخالفین ۰
حسن فتحی

۱۵ نقل قول از استیو جابز که الهام بخش شما در زندگی هستند

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

ادامه مطلب...
۲۰ خرداد ۹۴ ، ۱۶:۳۳ ۱ نظر موافقین ۰ مخالفین ۰
حسن فتحی

نحوه ایجاد Column Stored Index در SQL Server 2012

برای ایجاد Column Stored Index ابتدا باید فیلدهای شرکت کننده در ایندکس را تعیین و پس از آن ایندکس را ایجاد نمایید. مثال زیر نحوه انجام اینکار را نمایش می‌دهد.

۱- برای شروع کار یک جدول جدید ایجاد می‌کنیم. این جدول دارای یک Primary Key است که با استفاده از Clustered Index ایجاد شده است. بدلیل اینکه جداول شما از قبل وجود دارند ممکن است این مرحله جزء کار شما نباشد.

USE tempdb
GO
IF OBJECT_ID('Employees', 'U') IS NOT NULL
 DROP TABLE Employees
GO
CREATE TABLE Employees_ColumnBased
(
 Code INT IDENTITY CONSTRAINT PK_Code PRIMARY KEY,
 FirstName NVARCHAR(50),
 LastName NVARCHAR(80),
 HireDate SMALLDATETIME,
 City NVARCHAR(20)
)
GO
۲- در این مرحله تعدادی داده تستی در جدول درج می‌کنیم.

INSERT INTO Employees_ColumnBased (FirstName,LastName,HireDate,City) VALUES
 (N'مسعود',N'طاهری','۲۰۰۰-۰۱-۰۱',N'میانه'),
 (N'فرید',N'طاهری','۲۰۰۳-۰۱-۰۱',N'میانه'),
 (N'احمد',N'غفاری','۲۰۰۳-۰۱-۰۱',N'میانه'),
 (N'خدیجه',N'افروزنیا','۲۰۰۰-۰۱-۰۱',N'تهران'),
 (N'مجید',N'طاهری','۲۰۰۵-۰۱-۰۱',N'تهران')
GO
INSERT INTO Employees_ColumnBased (FirstName,LastName,HireDate,City)
 SELECT FirstName,LastName,HireDate,City FROM Employees_ColumnBased
GO 10
۳- در این مرحله یک Column Stored Index به ازای فیلدهای مورد نیاز ایجاد می‌کنیم. لازم به ذکر است در SQL Server 2012 این نوع ایندکس به شکل Non Clustered Column Stored Index می‌باشد.

CREATE NONCLUSTERED COLUMNSTORE INDEX IX_ColumnStore
 ON Employees_ColumnBased(FirstName,LastName,HireDate)
GO

نکته مهمی که باید در ایجاد این نوع از ایندکس‌ها در نظر گرفت این است که به دلیل افزایش Performance معمولاً در بیشتر مواقع این ایندکس‌ها با توجه به کوئری‌های شما ایجاد می‌گردند. بدین صورتکه

۱- لیست تمامی کوئری‌های پر استفاده به ازای جدول مورد نظر را استخراج نمایید.
۲- کلیه فیلدهای مربوط به مرحله اول را استخراج نمایید.
۳- در صورتیکه فیلدهای استخراج شده در مرحله دوم جزء فیلدهای قابل شرکت در Column Stored Index باشند در ایندکس مورد نظر شرکت نمایند.

۴- در صورتیکه بخواهید Column Stored Index را به صورت ویژوالی در Management Studio ایجاد کافی است مراحل زیر را انجام دهید.

ادامه مطلب...
۳۱ ارديبهشت ۹۴ ، ۲۲:۱۱ ۰ نظر موافقین ۰ مخالفین ۰
حسن فتحی

Column Stored Index

Column Stored Index یکی از قابلیت‌های جالبی است که در SQL Server 2012 ارائه شده است. بوسیله این قابلیت می‌توان سرعت اجرایی کوئری‌های را تا چندین برابر بهبود بخشید.

مایکروسافت مهمترین هدف خود را از ارائه این قابلیت افزایش سرعت اجرای کوئری‌های بر روی Data Warehouseهای بزرگ ذکر کرده است.

 اما می‌توان از آن در شرایطی خاص بر روی OLTP نیز استفاده نمود.

قبل از اینکه به معرفی این قابلیت جدید SQL Server بپردازیم باید شما با مفاهیم اولیه درباره Performance Tuning آشنا شوید.


۱- آشنایی با مفهوم Data File و Log File : همانطور که می‌دانید یک بانک اطلاعاتی در SQL Server حداقل از دو فایل (Data File و Log File) تشکیل شده است. در Data File کلیه اشیائی (مانند فیلد، جدول، ایندکس و…) که شما ایجاد می‌کنید ذخیره می‌شود و به طور ساده در Log File هر چیزی که منجر به تغییر این داده‌ها شود ذخیره می‌شود. برای مثال چنانچه شما مقدار رکوردی را تغییر دهید Log عملیات مربوط به تغییر در Log File ثبت می‌گردد. این Log می‌تواند شامل تصویر داده قبل و بعد از تغییر داده و همچنین زمان انجام کار و… باشد.

۲- آشنایی با مفهوم Page : همانطور که قبلاً هم اشاره کردیم داده‌هایی که شما ایجاد کرده‌اید در درون Data File ثبت می‌شود. درون Data File بلوک‌های ۸KB قرار دارد که به این بلوک‌ها Page می‌گویند. در SQL Server بیش از ۱۰ نوع Page وجود دارد. که SQL Server بر حسب نیاز از آنها استفاده می‌کند.

۳- آشنایی با مفهوم Index در SQL Server: به طور خیلی ساده، ایندکس لیست مرتب شده‌ای از داده‌ها است که بر اساس منطقی خاص مانند عدد، رشته، تاریخ و … ایجاد شده است. هدف از ایجاد ایندکس افزایش سرعت جستجو برای بازیابی داده‌ها می‌باشد.

۴- آشنایی با انواع ایندکس‌ها:

در SQL Server  پنج نوع ایندکس به شرح زیر وجود دارد

• Clustered Index: این نوع ایندکس‌ها بر روی داده‌های عادی مانند عدد، رشته، تاریخ و… ایجاد می‌شوند. زمانیکه یک Clustered Index بر روی یک جدول ایجاد می‌کنید ترتیب و چینش فیزیکی رکوردها بر اساس کلید ایندکس خواهد بود. بنابراین یک جدول صرفاً می‌تواند یک ایندکس از نوع Clustered  داشته باشد.

 

• NonClustered Index: این نوع ایندکس‌ها مانند Clustered Indexها بر روی داده‌های عادی مانند عدد، رشته، تاریخ و… ایجاد می‌شوند. زمانیکه یک ایندکس از نوع NonClustered بر روی جدول ایجاد می‌کنید کلید ایندکس در فضایی دیگری جدای از فضای جدول مرتب شده و مورد استفاده قرار می‌گیرد. به طور کلی در SQL Server می‌توان تا ۹۹۹ ایندکس از نوع NonClustered را ایجاد کرد.

 

• XML Index : این نوع ایندکس‌ها بر روی داده‌هایی  که در قالب ساختار XML هستند ایجاد می‌شود.

 

• Spatial Index : این نوع ایندکس‌ها بر روی داده‌هایی که از نوع جغرافیایی هستند ایجاد می‌شود.

 

• Column Stored Index : نوع جدیدی از ایندکس‌ها هستند که در SQL Server 2012 معرفی شده‌اند که سرعت دسترسی به داده‌ها در آن بیش از سایر ایندکس‌ها می‌باشد.

۵- آشنایی با مفهوم Execution Plan : Plan اجرایی یا نقشه اجرایی کوئری ترتیب اجرای فیزیکی دستورات را مشخص می‌نماید. زمانیکه شما کوئری را اجرا می‌کنید SQL Server آن را به همان ترتیبی که نوشته شده است اجرا نمی‌کند. بلکه ترتیب دسترسی به داده‌های موجود در جداول با توجه به پارامترهای مختلف مانند وضعیت ایندکس‌ها، وضعیت منابع سرور و…  خواهد بود.

پس از مشخص شدن ترتیب اجرای فیزیکی SQL Server نقشه آن را با عنوان Execution Plan ذخیره می‌کند تا در آینده بتواند از آن استفاده کند. چنانچه بخواهید نقشه اجرایی با Execution Plan یک کوئری را مشاهده نمایید کافی است که کوئری مورد نظر خود را Highlight نموده و کلید Ctrl+L را فشاره دهید تا Estimate Plan یا نقشه اجرایی تخمینی برای شما نمایش داده شود.

در تصویر زیر نمونه‌ای از Execution Plan یک کوئری نمایش داده شده است.

SELECT * FROM Orders O
 INNER JOIN [Order Details] OD ON O.OrderID=OD.OrderID
 INNER JOIN Employees E ON O.EmployeeID=E.EmployeeI

نکته : Execution Plan از سمت راست به چپ و از بالا به پایین خوانده می‌شود.

ادامه مطلب...
۳۱ ارديبهشت ۹۴ ، ۲۱:۳۷ ۴ نظر موافقین ۱ مخالفین ۰
حسن فتحی

با Silicon Valley آشنا شوید

حتما شما در بسیاری از خبر ها و یا از دوستان خود کلمه دره سیلیکون و یا به انگلیسی Silicon Valley را دیده و یا شنیده اید در این مقاله شمارا با این دره آشنا و کمپانی های بزرگ دنیایی فناوری را معرفی خواهیم کرد.
 
درهٔ سیلیکون Silicon Valley نام رایج و غیر رسمی منطقه‌ای در حدود 70 کیلومتری جنوب شرقی سانفرانسیسکو در حومهٔ سانتا کلارا، کالیفرنیا، ایالات متحده آمریکا است. شهرت این منطقه به دلیل قرار داشتن بسیاری از شرکت‌های مطرح انفورماتیک جهان در این منطقه‌است. نام این منطقه ابتداً برگرفته از تعداد زیاد شرکت‌های تولید کنندهٔ تراشه های سیلیسیمی در این منطقه بود که بعدها به نمادی از وجود کمپانی‌های زیاد فعّال در زمینه فناوری‌های پیشرفته در این منطقه تبدیل شد. دره سیلیکون شهرهای بسیاری را دربر می گیرد که مهمترین آنها سان خوزه مشهور به پایتخت دره سیلیکون می باشد.
تاریخچه ایجاد این ناحیه را گاراژی می‌دانند که در دههٔ سال 1930 میلادی دو دانشجوی مهندسی دانشگاه استنفورد به نامهای دیوید هیولت و ویلیام پاکارد یا همان اچ‌پی فعالیت خود را در آن آغاز کرده‌بودند. این گاراژ در حال حاضر به‌عنوان نماد درهٔ سیلیکون و محل تولد آن شناخته می‌شود.
 از جمله شرکت‌های بزرگ واقع در این منطقه می‌توان موارد زیر را نام برد:
اینتل
ای ام دی
ادوبی سیستمز
اپل
اسوس
ای بی
گوگل
اچ پی
اوراکل
یاهو
سیسکو سیستمز
انویدیا
سیمانتک
سان دیسک
مایکروسافت (شعبه اصلی این شرکت در سیاتل است)
همکاران واریان
 

منبعWikipedia

۲۴ بهمن ۹۳ ، ۲۳:۱۷ ۰ نظر موافقین ۲ مخالفین ۰
حسن فتحی

Wireshark

بهترین برنامه ممکن برای آنالیز و اشکال زدایی پروتوکل شبکه های مختلف است و به عنوان یک استاندارد واحد در بسیاری از صنایع و موسسات مورد استفاده قرار می گیرد. این نرم افزار ادامه یک پروژه است که در سال ۱۹۹۸ میلادی شروع شد و هزاران برنامه نویس از سراسر جهان آن را توسعه داده اند و هنوز هم این نرم افزار در حال توسعه می باشد از قابلیت های مهم آن خواندن و نوشتن در فرمت های بسیار متنوع می باشد. نرم افزار Wireshark می تواند هر آنچه را که در مورد اطلاعات و مشخصات یک شبکه می خواهید در اختیار شما قرار دهد.

ادامه مطلب...
۳۰ مهر ۹۳ ، ۰۲:۳۳ ۰ نظر موافقین ۲ مخالفین ۰
حسن فتحی

متدولوژی چیست ؟

 یک متدولوژی، مرکب است از مراحلی که هر یک به نوبه خود از مراحل فرعی تشکیل شده اند. با کمک این مراحل، توسعه دهندگان سیستم می توانند در هر مرحله ابزارها و روش های مناسب آن مرحله را انتخاب کرده و پروژه‌های توسعه سیستم های اطلاعاتی را برنامه ریزی، مدیریت، کنترل و ارزیابی کنند.

هر متدولوژی باید بتواند به سوالات زیر پاسخ دهد :

  • چگونه پروژه باید به مراحل فرعی تجزیه شود؟
  • در هر مرحله چه اقداماتی باید صورت گیرد؟
  • در هر مرحله چه خروجی هایی باید تولید شود؟
  • در چه زمانی و تحت چه شرایطی باید این وظایف انجام شوند؟
  • چه محدودیتهایی باید اعمال شود؟
  • چه کسانی باید درگیر شوند؟
  • پروژه چگونه باید مدیریت و کنترل شود؟
  • از چه ابزارهایی باید استفاده شود؟
ادامه مطلب...
۳۰ مهر ۹۳ ، ۰۲:۰۵ ۱ نظر موافقین ۳ مخالفین ۰
حسن فتحی