هوش تجاری (Business Intelligence)

هوش تجاری (Business Intelligence)

به اشتراک بگذاریم برای یادگیری، یاد بگیریم برای به اشتراک گذاری
هوش تجاری (Business Intelligence)

هوش تجاری (Business Intelligence)

به اشتراک بگذاریم برای یادگیری، یاد بگیریم برای به اشتراک گذاری

بدست آوردن تعداد سطر‌های جدول

معمولا برای بدست آوردن تعداد سطر‌های یک جدول از دستور زیر استفاده می‌شود.

Select count(*) from table_name 

اما برای بدست آوردن تعداد سطرهای یک جدول روش‌های دیگری نیز وجود دارد. هر یک از کوئری‌های زیر این کار را انجام می‌دهند

select sum(1) from table_name

select count(1) from table_name

'exec sp_spaceused table_name

DBCC CHECKTABLE(‘table_name’)

حذف صفر‌های سمت چپ عدد در SQL

برای اینکار فقط کافیست داده‌ها را به نوع int تبدیل کنید. برای درک بهتر این موضوع کوئری زیر را اجرا کنید. 

 

create table #data (data varchar(10))

insert into #data

select '12345' as data union all

select '00123' as data union all

select '0060' union all

select '00101' union all

select '00021' union all  

select '20000'

select   data as Before,

case when convert(int,data) is not null then cast(cast(data as int) as varchar(10)) else data end as After 

from    #data

پشتیبان‌گیری خودکار از بانک‌اطلاعاتی توسط MaintenancePlan Wizard

فایل پشتیبان (Backup) یک جزء اساسی و جدا نشدنی در حفظ و نگه داری داده‌ها است. بانک‌های اطلاعاتی که وظیفه ذخیره داده‌ها را بر عهده دارند نیز از این قاعده مستثنی نیستند و در واقع می‌توان گفت که فایل‌های پشتیبانی در بانک‌های اطلاعاتی حیاتی هستند.

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

در 2008 SQL Server برای اینکار از Maintenance Plan Wizard استفاده می‌کنیم. البته Maintenance Plan Wizard کارهای مختلفی انجام می‌دهد که یکی از این کارها Backupگیری است.

برای انجام این کار مراحل زیر را انجام دهید.

۱-   ابتدا مطمئن شوید که SQL Server Agent در حالت Start قرار دارد.

۲-     در Object Explorer به قسمت Maintenance رفته و برروی Maintenance Plans کلیک راست کنید و از منوی باز شده Maintenance Plan Wizard را انتخاب نمایید. 

   

۳-     در صفحه‌ی Select Plan Properties نام دلخواه خود را در قسمت Name وارد کرده و گزینه‌ی Separate schedules for each task را انتخاب کنید.

با انتخاب این گزینه می‌توانید در ادامه زمانبندی اجرای عملیات پشتیبان گیری را مدیریت کنید.

۴-     برروی Next کلیک کنید.

۵-     در صفحه‌ی Select Maintenance Tasks گزینه Back Up Databases(Full) را انتخاب کنید.

  

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

۶-    دوبار Next کنید تا به صفحه‌ی Define Back Up Database (Full) Task برسید. در این صفحه تنظیمات مربوط به ایجاد فایل پشتیبان قرار دارد.   

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

   

 ۷-  مراحل را ادامه دهید تا پس از کلیک بر روی Finish مراحل کار به شکل زیر تمام شود.  

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

مقایسه رکوردهای دو جدول و ثبت نتایج مقایسه

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

برای حل این مسئله روش بهتر و ساده‌تری نیز وجود دارد. TableDiff این امکان را برای ما فراهم می‌کند که بتوانیم رکوردهای دو جدول را با هم مقایسه و مطابق کنیم. در واقع TableDiff با مقایسه‌ی تمامی رکوردهای جدول A با تمامی رکوردهای جدول B اختلافات را شناسایی ذخیره می‌کند.


جهت استفاده از TableDiff مراحل زیر را انجام دهید.


۱-     ابتدا باید از نصب بودن TableDiff در SQL اطمینان حاصل کنیم. برای اینکار به آدرس C:\Program Files\Microsoft SQL Server\100\COM\ رفته تا فایل tablediff.exe را مشاهده کنید.

۲-      فعال کردن دسترسی به تابع xp_cmdshell.

اجرای دستورات tablediff از طریق تابع xp_cmdshell امکان پذیر است. برای فعال کردن این تابع از دستور زیر استفاده کنید.

EXEC sp_configure 'show advanced options', 1

GO

RECONFIGURE

GO

EXEC sp_configure 'xp_cmdshell', 1

GO

RECONFIGURE

GO

 

۳-     دو جدول مشابه با نام‌های A و B در یک بانک اطلاعاتی به نام Shop ایجاد کنید. در جدول A چند سطر رکورد وارد کنید.

دقت داشته باشید که این جداول حتما باید فیلد‌های یکسان داشته باشند.

۴-      با اجرای کوئری زیر دو جدول A و B با هم مقایسه می‌شوند و نتیجه‌ی آن در فایل Result.sql در درایو C ذخیره می‌شود.

exec master..xp_cmdshell'"C:\Program Files\Microsoft SQL Server\100\COM\tablediff.exe" -sourceserver (local) -sourcedatabase Shop -sourcetable A -destinationserver (local) -destinationdatabase Shop -destinationtable B -f C:\ Result.sql'

 

۵-      با اجرای کوئری ساخته شده در فایل Result.sql اطلاعات جدول B همانند اطلاعات جدول A خواهد شد.