2012年8月27日 星期一

Reporting Service新功能介紹 - Data Alerts


        SQL Server 2012的推出已有一段時間了,接下來我們就來介紹Reporting Service的部份,在本次的更新中,其實Reporitng Service主要大多在與SharePoint整合的部份,而其中有兩大主要的功能,一個是Data Alerts,另一個則是 Power View,而本次我們就來介紹一下 Data Alerts的部份。

相關連結:


Data Alerts功能主要就是你可以在報表內設定一個警示條件,當條件符合時,系統可以寄出信件通知使用者,這個功能常見的如證卷業,當基金本身的獲利高或低於某條件值時,就寄送Mail通知投資者,而這個功能,透過Data Alerts即可輕鬆的達成。


其實基本上Data Alerts與原本Reporting Service提供的報表訂閱非常的類似,但仍有些不同的地方,再請參考下方:

相同的部份:
  • 兩者皆透過SQL Server Agent進行排程進行處理。
  • 兩者都透過E-Mail進行寄送到收件者端。

不相同的部份:
  1. 報表訂閱可以傳送報表或連結給收件者,但是 Data Alerts只能傳送連結。
  2. 報表訂閱是在預定的時間會自動寄送,而Data Alerts只有在巡查的時間與設定的條件值都符合時,才會寄送給收件者。
  3. 報表訂閱的資訊會存放在 [ReportServer] 的資料庫中,而Data Alerts則會存放在 [ReportServer_Alerting]的資料庫中。

先行條件:請先參考 [如何在SharePoint上設計報表] 一文中的說明,先將報表設計好並且放置在SharePoint上。


設定方式:
1、確認 SharePoint - SMTP主機設定
1-1 登入SharePoint的管理中心後,點選 [系統設定] -> [電子郵件及簡訊 (SMS)] -> [設定外寄電子郵件設定]

1-2 請在 [外寄 SMTP 伺服器] 的欄位上,輸入您的主機位址。

2、確認 Reporting Service - SMTP主機設定
2-1 登入SharePoint的管理中心後,點選 [應用程式管理] -> [管理服務應用程式]

2-2 點選先前建立的Reporting Service應用程式後。

2-3 點選 [電子郵件設定]。

2-4 此時請再輸入Reporting Service應用程式的 [SMTP郵件伺服器]。

3、新增資料警示 (Data Alerts)
3-1 開啟任何已設計好的報表,或是參考前文 [如何在SharePoint上設計報表] 中設定的報表,然後點選 [動作] -> [新增資料警示]。

3-2 此時會提供您先行安裝 Sliverlight,請點選立即安裝。

3-3 開啟後視窗主要會分成兩個區塊,左邊屬於報表的部份,而右邊則是警示的設定區塊。

在這我們主要設定當使用者 [Davolio Nancy] 在 199801的總計金額小於68元時,就發出警示。

3-3-1 請在左邊警示名稱的部份輸入一個名稱。
3-3-2 第二個區塊主要設定條件的部份,ename設選擇 [Davolio Nancy]。
3-3-3 sum_mon請選擇 [小於] 數值請輸入 [68]。
3-3-4 yymm_order_date 請輸入 [198101]。
3-3-5 排程時間由於測式的原因,所以我設定成每1分鐘檢查一次。
3-3-6 請至少輸入一個收件者的Email,多個收件者時,可以用 "," 區隔開。
3-3-7 請點選儲存。

3-4 存檔完成後,在原設定的報表名稱上,您可以透過 [管理資料警示] 的選項進行設定。

3-5 進入資料警示 (Data Alerts) 的管理畫面後,你就可以看到目前的監空情況。

3-6 此時我到資料庫中,將 [Davolio Nancy] 的銷售記錄進行修改後,系統在排程時間到的時候,就會自動寄出E-Mail,內容如下。

此篇介紹的功能,個人覺得滿實用的,尤其是公司的高層主管對於某些數字特別需要監控時,都可以透過這個功能進行,所以就可以減少很多程式設計的時間,只需設定即可以達到要求。


參考連結:
Data Alerts
http://msdn.microsoft.com/en-us/library/gg492252.aspx

關鍵字:Reporting ServiceSharePointData Alerts

2012年8月16日 星期四

如何在SharePoint上設計報表

        經過前三篇的介紹,相信大家已有將SharePoint與Reporting Service的環境架設好了,再來我們就來介紹如何進行報表的設計,其實在前面的文章中我已有介紹透過 BIDS(SQL Server Business Intelligence Development Studio)來設計,但是如果在沒有裝 BIDS 的環境中,如使用者的電腦上,該如何進行,本篇我們就來介紹一下如何透過 Report Builder來進行設計。

相關連結:

先行準備:
環境上如果還有準備的人,請大家先依照前三篇的說明,將環境準備好,然後再進行下列的動作。

本篇我們透過以前就非常有名的北風資料庫 (Northwind) 為範例,如果你沒有此資料庫時,請先至下列的網址下載並安裝。

Northwind and pubs Sample Databases for SQL Server 2000
http://www.microsoft.com/en-us/download/details.aspx?id=23654


設計步驟:

1、開啟前端站台的網頁 (不是管理頁面哦)。
2、點選 [共享文件] -> [文件] -> [新增文件]  -> [報表產生器報表]



3、新增後,由於我的電腦沒有安裝過 Report Builder 所以系統會自動提示下載與安裝。

4、下載與安裝完成後,即會自動啟動 Report Builder的軟體,此時請選擇 [新報表] -> [資料表或矩陣精靈]。

5、選擇 [建立資料集]。

6、選擇新增資料來源連接。

7、請在連接字串的部份選擇 [建立] ,然後填入資料庫的資訊後,即可產生連接字串。

8、報表的部份請切換到 [認證] 的頁次,然後選擇第二項並填入使用者名稱與密碼的資訊。

9、請先點選 [當成文字編輯] ,然後將下列的SQL語法貼入,然後再點選執行,你應該就可以看到語法執行的結果了。
SELECT
   Customers.CompanyName,
   Employees.LastName + N' ' + Employees.FirstName AS ename,
   Employees.Title,
   LEFT(CONVERT(varchar, Orders.OrderDate, 112), 6) AS yymm_order_date,
   SUM([Order Details].UnitPrice) AS sum_mon
FROM Orders INNER JOIN
   Customers ON Orders.CustomerID = Customers.CustomerID INNER JOIN
   Employees ON Orders.EmployeeID = Employees.EmployeeID INNER JOIN
   [Order Details] ON Orders.OrderID = [Order Details].OrderID
GROUP BY
   LEFT(CONVERT(varchar, Orders.OrderDate, 112), 6),
   Customers.CompanyName,
   Employees.LastName + N' ' + Employees.FirstName, Employees.Title
ORDER BY Customers.CompanyName, ename, yymm_order_date



10、請將 [可用的欄位] 全部拉到 [值] 的方塊中。

11、這一頁主要是選擇是否要小計和總計等資訊,請直接點選 [下一步] 。

12、選擇報表的樣式風格。

13、完成精靈後,即可看到報表已有初步的設計完成,這時你可以再自行填入標題或欄位名稱等資訊。

14、選擇存檔,這時系統會詢問你要存放的位置,此時請選擇存放在 [Shared Documents] 的目錄中。

15、這時候再回到網站中,在共享文件的頁次中,你就可以看到剛剛儲存的報表。

16、點選報表後即可直接預覽報表。


關鍵字:SharePointSQL ServerReporting ServiceReporting Services with SharePoint Integration

2012年8月14日 星期二

如何讀取SQL Server的追蹤檔(Trace Files)

        相信有在使用SQL Server的人對SQL Profiler一定都不陌生,我在前面的幾篇文章中也都有介紹到,透過這個工具可以進行SQL Server的監控、效能追蹤等,但是產生的追蹤檔如果檔案很大時,直接透過SQL Profiler本身的工具開啟時,操作上比較不方便,而且如果有需要進行進一步的統計分析時,就無法作到,通常需要另外的將檔案的資料匯入到資料表中進行處理才可以。

相關文章:
SQL Server - 使用者稽核 - 威力加強版
http://caryhsu.blogspot.tw/2011/08/sql-server_12.html
SQL Server 效能調整 - 如何整合 SQL Profiler 與 Performance Monitor
http://caryhsu.blogspot.tw/2011/11/sql-server-sql-profiler-performance.html

         SQL Server在內建的功能中其實有一個內建的Function可以將這些追蹤檔快速的載入或是轉存到資料庫中,語法上主要透過 [fn_trace_gettable] 進行,而如果你的檔案有分成不同的檔案時,也可以透過此Function一次載入,方法如下。

下列的範例已SQL Server預設的 default trace為主,其格式為 log.trc、log_1.trc....一直進行分檔的動作,所以你只需在檔案中指定讀入 log.trc 即可,後續的檔案系統會自動接續讀入。

SELECT * FROM ::fn_trace_gettable('C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Log\log.trc', DEFAULT)

載入後,你就可以透排序的方式找出最常看的四個面向問題,如 [Duration]、[CPU]、[Reads]、[Writes],藉以找出問題發生時各種情況的語法,再進行調整。

參考連結:
fn_trace_gettable (Transact-SQL)
http://msdn.microsoft.com/zh-tw/library/ms188425(v=sql.90).aspx

2012年8月9日 星期四

Rand 亂數取值的問題與解決方法

        在SQL Server中如果要使用亂數取值的方式,其實可以透過 Rand() 函數的方式進行取得,但是近日朋友遇到一個情況,就是當 Rand() 函數配合查詢多列時,會發生產生的亂數值都是相同的情況,如下圖所示。

SQL語法:
SELECT [EmployeeID]
      ,[EmployeeName]
      ,[Title], (rand() * 10000) as rand_num
FROM [Northwind].[dbo].[Employees]



其中我透過許多不同的方式嘗解決這個問題,但可惜都無法解決,後來終於找到一個解決,透過下列的語法,即可讓每一列產生的亂數值都不相同,在此提供給大家。

SQL語法:
SELECT [EmployeeID]
      ,[EmployeeName]
      ,[Title]
      ,(ABS(CAST(NEWID() AS binary(6)) %10000)) rand_num
FROM [Northwind].[dbo].[Employees]


參考連結:
RAND (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms177610.aspx
Mathematical Functions (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms177516.aspx


關鍵字:SQL ServerRandRandomizeseed

2012年8月2日 星期四

SQL Server 2008R2 SP2 發佈更新與說明

        等待已久的SQL Server 2008 R2 SP2,終於在7/26日的時候發佈了,這次主要修正了8個主要的問題外,額外也進行了24項的修正,詳細的說明請參考官網上 KB2630458,詳細介紹如下,再請參考。

安裝時系統會進行檢查,確認您已有裝的SQL Server的功能與版本。

 安裝完成後,您會看到版本就會變成 [10.50.4000]。


針對客戶不斷的需求提出,本修正也作了下列的更新與異動:

  • Reporting Services Charts Maybe Zoomed & Cropped Customers using Reporting Services on Windows 7 may sometime find charts are zoomed in and cropped. To work around the issue some customers set ImageConsolidation to false.
  • Batch Containing Alter Table not Cached In certain situations with batch files containing the alter table command, the entire batch file is not cached.
  • Collapsing Cells or Rows, If Hidden Render Incorrectly Some customers who have hidden rows in their Reporting Services reports may have noticed rendering issues when cells or rows are collapsed. When writing a hidden row, the Style attribute is opened to write a height attribute. If the attribute is empty and the width should not be zero.


主要修正問題:
VSTS bug numberKB article numberDescription
820875922578FIX: Lots of messages that have message ID 19030 and message ID 19031 are logged in SQL Server 2005, SQL Server 2008 or SQL Server 2008 R2 Errorlog file when you use SQL Server Profile in SQL Server 2005, in SQL Server 2008 or in SQL Server 2008 R2
7285272216456SQL Server 2008 Service Pack 2 and SQL Server 2008 R2 Service Pack 2 enhancements to the "Operation has been cancelled" error message text in Analysis Services
8208582550375FIX: Deadlock might occur in sys.dm_database_encryption_keys DMV in SQL Server 2008 R2 when you run log shipping from many databases to one secondary server
8208782565683FIX: You may receive incorrect results when you run a complex query that contains aggregates functions, join functions, and distinct functions in subqueries in a SQL Server 2008 or SQL Server 2008 R2 environment
8207562588050FIX: Slipstream installation of a SQL Server 2008 or SQL Server 2008 R2 service pack fails when you add new features to the SQL instance if database engine is installed
9016892653857FIX: You cannot connect to SQL Server by using JDBC Driver for SQL Server after you upgrade to JRE 6 update 29 or a later version
8736032682488FIX: Backup operation fails in a SQL Server 2008, in a SQL Server 2008 R2 or in a SQL Server 2012 database after you enable change tracking
9589832719217FIX: Latch time-out error when you have heap tables and when data compression is enabled in SQL Server 2008 R2 or in SQL Server 2012



檔案下載:
Microsoft® SQL Server® 2008 R2 Service Pack 2
http://www.microsoft.com/en-us/download/details.aspx?id=30437

參考連結:
SQL Server 2008 R2 SP2 Is Now Available! http://blogs.msdn.com/b/sqlreleaseservices/archive/2012/07/26/sql-server-2008-r2-sp2-is-now-available.aspx

關鍵字:SQL ServerService PackSQL Server 2008R2

SharePoint與Reporting Service整合模式安裝與配置教學 - Part III

        經過前二篇的介紹,我們再來繼續進行Reporting Service的部份,本篇設定完成後,你就可以透過SharePoint進行報表的設計與整合,當然後續的一些新功能展示與介紹也會以這三篇為主,再請大家趕緊將環境建置完成。


相關連結:

環境設定:
1、安裝與啟用Reporting Service
1-1 請透過 [以系統管理員身份執行] 啟動 [SharePoint 2010 管理命令介面]

1-2 請依序輸入下列三行指令,前二行輸入後不會有任何的訊息,而第三行輸入後即會列出你已安裝的服務。
Install-SPRSService
Install-SPRSServiceProxy
get-spserviceinstance -all |where {$_.TypeName -like "SQL Server Reporting*"} | Start-SPServiceInstance


1-3 安裝完成後,確認是否已有啟動,請回到管理中心,點選 [系統設定] -> [管理伺服器上的服務]。

1-4 請確認 [SQL Server Reporting Service 服務] 是否已啟動,如果沒有請啟動,如果沒有看到此服務時,請確認1-3步驟執行上是否有誤。


2、新增SQL Server Reporting Service應用程式
2-1 回到管理中心,然後點選 [應用程式管理] -> [管理服務應用程式]。

2-2 此時我們需建立一個Reporting Service的應用程式,所以請接續點選 [新增] -> [SQL Server Reporting Services 服務應用程式]。

2-3 程式的名稱請自行輸入,由於建議最好與原本的應用程式集區進行區隔,所以請選擇 [建立新的應用程式集區],名稱同樣請自行輸入。

2-4 資料庫驗證的方式,建議可以選擇 [Windows 驗證],並且請勾選 [Web 應用程式關聯] 中的網站名稱。

2-5 Reporting Service 服務應用程式建立完成。


3、網站設定 - 啟用與整合Reporting Service
3-1 登入網站首頁(不是後端管理網站哦),選擇左上角的 [網站動作] -> [網站設定]。

3-2 點選 [網站集合管理] -> [網站集合功能]。

3-3 請確認 [Power View 整合功能] 已有啟動,如果沒有請啟動。

3-4 請確認 [報表伺服器整合功能] 是否已啟動,如果沒有請同樣啟動,如果您在此區看不到這二個功能的話,請檢查之前的步驟。


4、增加與設定Reporting Service文件集
4-1 點選 [共享文件] -> [文件庫] -> [文件庫設定]

4-2 點選 [一般設定] -> [進階設定]

4-3 由於我們需要自行變更文件的內容類型,所以請將 [是否允許內容類型的管理?] 更改為[是]。

4-4 再同樣進入 [共享文件] -> [文件庫] -> [文件庫設定],然後點選 [從現有的網站內容類型新增]。

4-5 內容類型請選擇 [SQL Server Reproting Services 內容類型] -> 然後將看到的三個類型全部新增,然後選確定。

4-6 然後到 [共享文件] -> [文件] -> [新增文件],你就可以看到剛剛新增的報表文件,

透過本次三篇文章可以讓你將SharePoint與Reporting Service進行整合,後續我將儘快介紹SQL Server 2012中關於Reporting Service的新功能,再請大家繼續支持。


參考連結:
Install Reporting Services SharePoint Mode as a Single Server Farm
http://msdn.microsoft.com/en-us/library/gg492276.aspx 

相關連結:

關鍵字:SQL ServerReporting ServiceSharePoint