วันศุกร์ที่ 7 พฤศจิกายน พ.ศ. 2557

Migrate SSIS 2005 to SSIS 2014 via Visual Studio 2013

SSIS Package can be upgrade by VS 2013 in vizard .

In case of package store password , you can set password to all package by select all package you want and type password in a box and apply to all.



ORACLE Connect 
There are many concern about connect oracle.

Software require (Oracle)
   Oracle_win32_11gR2_client   --> For dev environment
   Oracle_win64_11gR2_client    --> For Server
   If you want to use SQL Developer you need to install Java (32bit)
   Download Java : jdk-7u71-windows-i586
*** IMPORTANT --  (Installation Type: Administrator)

NLS_LANG
should be AMERICAN_AMERICA.WE8MSWIN1252
In my case NLS_LANG has set default to THAI_THAILAND.TH8TISASCII  that's not working!


SSDT (SQL Server Data Tools) 
In SQL Server 2005,2008,2008R2 we know the Business Intelligence Solution .
Since SQL Server 2012 Microsoft has change the way to design solution to be SSDT
Download SSDThttp://www.microsoft.com/en-us/download/details.aspx?id=42313


------------------- Latest Update ---------------------

Package update
-- 2005 -->2014 ต้องใส่รหัสผ่านตอน Update
--Data source sql server เปลี่ยน type จาก     Native OLE DB เป็น SQL Server Native Client 11.0
--Require ORACLE Client ขอโน๊ตมาลง
  ตอน install ให้เลือก custom เพื่อเลือก sql plus และ Connection manager / Net client
--Not success , Stuck at 80%

******ลง แบบ Admin จะได้จบๆเรื่อง


Oracle Base --> C:\Oracle\Home

Software Location --> C:\Oracle\Home\product\11.2.0\client_1


-- Path variable value --
C:\Oracle\bin;C:\Oracle;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOTxxx

วิธีจัดการ Warning - Error ตอน Install Oracle Client
http://dba.stackexchange.com/questions/50867/environment-varible-path-exceeding-recommended-length-solution
คือเปิด system variable -- Path -- ลบให้เหลือสั้นๆ กด OK จากนั้น Start install ใหม่ ทำเสร็จ Set ให้เหมือนเดิม


--Path value หลังจาก Install เสร็จ
C:\Oracle\Home\product\11.2.0\client\bin;C:\Oracle;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine xxxx

C:\Oracle\Home\product\11.2.0\client\bin;C:\Oracle;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOTxxx

-- ลง 32 Bit เสร็จแล้วสามารถใช้งานได้ โดยเลือก
 Native OLE DB\Oracle Provider for OLE DB


-- ขั้นตอนการแก้ SSIS Package

Souce (Oracle) --> Change defaultCodePage -->TRUE
Data Type --> Unicode string[DT_WSTR]


-- การ Create database เพื่อทดสอบ มีerror
CREATE FILE encountered operating system error 5(Access is denied.) while attempting to open or create the physical file
ให้ Set permission ให้ everyon สามารถ write
-- ต้องแก้ Compat ให้ >=100 , 90 ไม่ผ่าน
SET COMPATIBILITY_LEVEL = 100



---------- NLS LANG ตอน Design package มีส่วนสำคัญ ต้อง set เป็น AMERICAN ถ้าเป็น THAI --> Error
THAI_THAILAND.TH8TISASCII
AMERICAN_AMERICA.WE8MSWIN1252



--------- SCRIPT TASK
Need to install VSTA Microsoft (Visual Studio Tools for Applications 2012 SDK)
-->Set default language of Script task
   Tool->Option->Business Intelligence Designer->Integration Service
      -->Chage Script langage to VB



-------- Excel source
Need to install  (x86 on designer Machine)
AccessDatabaseEngine_x86-NeedtoInstall.exe




---- CARD Reward Balance ที่มีปัญหา
  --->Script shoud chage to Merge instead of Inset if not exist








วันอังคารที่ 28 พฤษภาคม พ.ศ. 2556

How to clear index (aggregation file) from you Cube or partition

Using  ProcessClearIndexes 
ปกติแล้วใน UI (SSMS) จะไม่มี Option นี้ให้เลือกใช้
แต่สามารถใช้ได้โดยการใช้ Script แทน


Credit by :
http://searchsqlserver.techtarget.com/tip/Recommended-practices-for-SQL-Server-Analysis-Services-aggregations


วันอังคารที่ 9 ตุลาคม พ.ศ. 2555

Sql server , Summary accumulate , running total



I prefer  the second and the third sulution

Solution 2: The "Celko" Solution

(NoIndex = 25 secs, Index = 20 secs)
SELECT DayCount,
       Sales,
       Sales+COALESCE((SELECT SUM(Sales) 
                      FROM Sales b 
                      WHERE b.DayCount < a.DayCount),0)
                         AS RunningTotal
FROM Sales a
ORDER BY DayCount



Solution 3: The "Guru's Guide" Solution

(NoIndex = 38 secs, Index = 17 secs)
SELECT a.DayCount,
       a.Sales,
       SUM(b.Sales)
FROM Sales a
CROSS JOIN Sales b
WHERE (b.DayCount <= a.DayCount) AS RunningTotal
GROUP BY a.DayCount,a.Sales
ORDER BY a.DayCount,a.Sales


วันศุกร์ที่ 28 กันยายน พ.ศ. 2555

MDX Dynamic Hierarchy 1


ตัวอย่างการทำ Dynamic Hierarchy กับ Calculate member
LEVELS ใช้ Function นี้ในการ Convert string เป็น Hierarchy LEVEL ได้
MEMBERS  ใช้ Function นี้ในการ Convert string เป็น Member (CurrentMember) ได้ด้วย

With member [Measures].[HRC] as
"[Dim_Date].[HRC_YQMD]"

MEMBER [Measures].[AccmCash] as
    Aggregate(
          PERIODSTODATE(
            LEVELS([Measures].[HRC]+".[Year]"),-- CONVERT String to LEVEL
            MEMBERS([Measures].[HRC]+".CURRENTMEMBER") -- CONVERT String to MEMBER
          ),[Measures].[Cash])


SELECT {[Measures].[Cash],[Measures].[AccmCash]} ON 0,
NON EMPTY
[Dim_Date].[Hrc_YQMD].[Date].MEMBERS ON 1
FROM (SELECT [Dim_Date].[Month].&[201201] ON 0 FROM [Cube_Txns])

RESULT
Date                  CASH            ACCMCASH

20120101 44,176,675 44,176,675
20120102 46,656,659 90,833,334
20120103 43,954,618 134,787,952
20120104 46,481,631 181,269,583
20120105 45,993,021 227,262,603
20120106 43,674,555 270,937,158
20120107 40,730,331 311,667,489
20120108 37,520,953 349,188,442
20120109 41,457,006 390,645,448
20120110 41,601,764 432,247,212