วันพุธที่ 26 กันยายน พ.ศ. 2555

SSAS Cube processing tips.

วิธีการประหยัดเวลาในการ Process OLAP Cube ที่มีปริมาณข้อมูลเยอะมากๆ
ในกรณีที่อยู่ระหว่างการแก้ไข หรือตรวจสอบความถูกต้องของข้อมูลใน CUBE
การ Process FULL เป็นตัวเลือกที่ไม่ดีสำหรับกรณีใดๆที่มีข้อมูลเยอะมากๆ
เนื่องจากหากมี Error ใดๆ จำให้การ Process failed ทั้งหมด
ดังนั้นคำแนะนำคือ ทำการ Process Object ตามลำดับขั้นดังนี้

1 Process Full Dimension 
เพื่อตรวจสอบความถูกต้องของ Dimension ต่างๆ ทั้งข้อมูลใน Dimension และ Hierarchy รวมถึงการ Set Attribute relationship

2 Process Cube Structure
เพื่อทำการ Build structure ทั้งหมดของ CUBE ซึ่งการ Process นี้จะทำการล้างข้อมูลทั้งหมดที่มี (หาก Set storage mode = MOLAP) แต่จะทำให้สามารถ Browse cube ได้เหมือนกับ Process Full เพียงแต่ไม่มีข้อมูลแสดงเท่านั้นเอง

3 Process Data 
สามารถ Process Measure Group และ Partition ภายใต้ Measure Group
เพื่อทำการ Add ข้อมูลเข้าระบบ ทั้งนี้ ควรทดสอบ Process data ใน Partition บางส่วนก่อนเพื่อตรวจสอบความถูกต้องของข้อมูล เพราะหากมีการ Re-Design dimension และทำ Attribute relation ship ผิดใน Dimension design จะส่งผลกับข้อมูลผิดตามไปด้วย

4 Process Index
เพื่อ Process aggregation ของ CUBE ซึ่งส่วนนี้ขึ้นอยู่กับการ Design aggregate ใน Cube partition

โดยขั้นตอนลำดับขั้นที่กล่าวมาเป็นวิธีการที่ช่วยลดเวลาในการ Process Cube เพื่อตรวจสอบ
หรือสามารถ apply ได้ในหลายกรณีครับ


วันอังคารที่ 21 สิงหาคม พ.ศ. 2555

sql server update record , percent complete

กรณี Update ข้อมูลจำนวนมาก
หากต้องการรู้ว่า การ update นั้น เสร็จไปแล้วกี่เปอร์เซ็นต์

SELECT * FROM sys.dm_exec_requests WHERE session_id = 68
See column percent_complete




Credit
http://www.mssqltips.com/sqlservertip/1338/finding-a-sql-server-process-percentage-complete-with-dmvs/

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

SQL Server list Database file name


select d.name as db_name, f.name as file_name, f.filename as logical_filename
from sysaltfiles f
inner join sysdatabases d
on (f.dbid = d.dbid)
order by 1,2


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