วันอังคารที่ 10 กรกฎาคม พ.ศ. 2555

Restart OLAP Service from SSIS package

Reference from http://businessintelligencechronicles.blogspot.com/2009/02/using-ssis-script-task-to-executing.html


Using script task to connect remote server to stop & start mssqlserverOLAPService
Basicly we know command to stop and start olap service via command prompt.

Start -->Run command
Net stop mssqlserverOLAPService   <---- Command to stop
Net start mssqlserverOLAPService   <---- Command to start

In the example he remote to run Calc.exe via Command variable
In my case I create two string Command (Command1 , Command2)
Set Command1 = Net stop mssqlserverOLAPService
Set Command2 = Net start mssqlserverOLAPService


And then seperate  commands into 2 script tasks
1 = Script for stop
2 = Script for start

**Remark If  you SSIS version is 2008 You no need to change anythings except your command.
If you using  SSIS 2005 you need to change a little bit command
from Dts.TaskResult = ScriptResults.Success to be Dts.TaskResult = Dts.result.Success
That's it.



That's work perfectly!!!
Thanks 

วันเสาร์ที่ 7 กรกฎาคม พ.ศ. 2555

วันพุธที่ 4 กรกฎาคม พ.ศ. 2555

OLAP Distinct count measures

Analysis Services Distinct Count Optimization

Refer to : 

http://sqlcat.com/sqlcat/b/technicalnotes/archive/2010/09/20/analysis-services-distinct-count-optimization-using-solid-state-devices.aspx


วันศุกร์ที่ 22 มิถุนายน พ.ศ. 2555

View percentage for SQL task

SELECT percent_complete , (estimated_completion_time/1000)/60 Estimated_completion_time_Mins ,
 (total_elapsed_time/1000)/60 Total_Elapsed_Time_Mins ,DB_NAME(Database_id) DBName ,*
FROM sys.dm_exec_requests
WHERE percent_complete <> 0


วันจันทร์ที่ 18 มิถุนายน พ.ศ. 2555

SQL Server 2008R2 Change server collation

วิธีการเปลี่ยน Server Collation ของ SQL Server 2008 R2
ในกรณีที่ตอน Install ไม่ได้เลือก Collation ของ Server ให้เป็นไปตามต้องการ
(โดยปกติแล้ว Server จะ Default เป็น SQL_Latin bla bla bla)

1 หา setup.exe ใน Path ที่ Install SQL Server เช่น
  C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\SQLServer2008R2\
  หรือจาก Media Path ที่มี setup.exe อยู่ เช่น
   D:\SQL2008R2
2 run command window. เพื่อจะใช้คำสั่งผ่าน Command line.
3 จัดการรัน command ตามนี้
   setup.exe /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLCOLLATION=Thai_CI_AI /SQLSYSADMINACCOUNTS="WIN2008BI\SQLadmin" /SAPWD="myP@ss"

ข้อควรระวังตรงนี้คือ User ที่จะใช้ในการรันจะเป็น Window user ไม่ใช่ sa ของ SQL Server น่ะ
จากตัวอย่างคือ "WIN2008BI" = Server Name , SQLadmin = Account , และ SAPWD = "myP@ss" คือ Password ในการ Login เข้า Window


---------------------------
ERROR LOG กรณีใส่ parameter ผิด

Log file สามารถเข้าไปดูได้ที่

C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log

Summary.txt คือไฟล์สรุป Log สามารถดูที่บรรทัดสุดท้ายว่ามี Exception หรือไม่ ถ้ามีแสดงว่าการ Setup ไม่ผ่าน อาจจะมีข้อผิดพลาดจากเรื่อง User / Password หรืออื่นๆ ให้อ่านในส่วน Exception นี้

ตัวอย่าง

Exception summary:
The following is an exception stack listing the exceptions in outermost to innermost order
Inner exceptions are being indented

Exception type: Microsoft.SqlServer.Chainer.Infrastructure.InputSettingValidationException
    Message:
        The Windows account ”W28BI401\sos” does not exist and cannot be provisioned as a SQL Server system administrator.
    Data:
      SQL.Setup.FailureCategory = InputSettingValidationFailure
      DisableWatson = true
    Stack:
        at Microsoft.SqlServer.Chainer.Infrastructure.InputSettingService.LogAllValidationErrorsAndThrowFirstOne(ValidationState vs)
        at Microsoft.SqlServer.Configuration.SetupExtension.ValidateFeatureSettingsAction.ExecuteAction(String actionId)
        at Microsoft.SqlServer.Chainer.Infrastructure.Action.Execute(String actionId, TextWriter errorStream)
        at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(TextWriter statusStream, ISequencedAction actionToRun)
    Inner exception type: Microsoft.SqlServer.Configuration.SqlEngine.ValidationException
        Message:
                The Windows account ”win2008BI\SQLadmin” does not exist and cannot be provisioned as a SQL Server system administrator.



ข้อควรระวังเกี่ยวกับ Account Name  , IT CASE SENSITIVE ตัวเล็กตัวใหญ่มีผลครับ - -"
เช่น WIN2008BI แตกต่างจาก win2008BI
ถ้า server name จริงเป็นตัวใหญ่หมดก็ต้องใช้ตัวใหญ่ทั้งหมดใน parameter ไม่งั้นมันก็บอกว่าไม่มี Account นั้น ฮ่าๆ

ขอให้เปลี่ยน Collation สำเร็จนะครับ :)