2011年2月26日 星期六

SQL Server 2008R2 系統總覽圖(System Views Poster)

          最近開始觀看SQL Server國外的雜誌(SQL Server Magazine),在其中發現了一個好東西,那就是SQL Server 2008 R2的系統總覽圖,大家可以透過下列的網址進行下載,另外當然你可以直利用訂購的方式,直接進行訂購,但是要14.95美元,大家可以參考看看吧!!



下載網址:http://www.microsoft.com/downloads/en/details.aspx?FamilyID=65b81dce-db80-43f3-90e8-0753c751eaa7

我的電腦設備回來了!!

        自從我的電腦(ASUS A42JK)啟用了Hyper-V(事件)之後一直有問題,先是不能開機,停用了顯示卡並移除顯示卡的驅動程式之後,雖然開機正常了,但是我的寬螢幕卻只能秀出1024 x 768,後續我的聲音也不能用,聽音樂的時候都會破破的,害我差一點拿去維修,後來想說先試著停用Hyper-V試看看,結果盡量全部都好了,真的沖的也太厲害了吧,但是我的另外一台電腦竟然是可以的,我想我的ASUS是暫時不能用Hyper-V了,只好靠我的Lenovo的小黑了。

2011年2月25日 星期五

SQL Server 2012(Code Name Denali) - 新T-SQL語法介紹 – 分頁功能

         在本次的SQL Server 2012的新特色更新中,我來介紹一下一個新提供的分頁功能T-SQL語法,在本次的介紹中,我將使用AdventureWorks2008R2資料庫來作為介紹,若還沒有安裝的,因為內建是沒有的,所以可以透過我上一篇的文章[安裝SQL Server 中的範例資料庫], 再進行安裝即可。

         我希望利用[Production].[TransactionHistory][Production].[Product]兩個表格來進行分頁的動作(因為這二個表格的資料比較多),首先我先查詢一下目前兩個表格的筆數為何。





       再來就是針對這兩個表格進行分頁的動作,此分頁寫法我透過ROW_NUMBER來完成。
SELECT TransactionID, ProductID, TransactionDate, Quantity, ActualCost, FROM
(
    SELECT ROW_NUMBER() OVER(ORDER BY TransactionID) row_id,
                   TransactionID, bb.ProductID, TransactionDate, Quantity, ActualCost,
    FROM Production.TransactionHistory aa INNER JOIN Production.Product bb ON
                   aa.ProductID = bb.ProductID
) aa
WHERE row_id BETWEEN 10001 and 10010



       當然我透過SQL Server 2012提供的新功能(OFFSETFETCH)來完成,而OFFSET主要就是決定從第幾行開始顯示資料,而FETCH NEXT則是決定你要秀出幾筆。

SELECT TransactionID, bb.ProductID, TransactionDate, Quantity, ActualCost
FROM Production.TransactionHistory aa INNER JOIN Production.Product bb ON
            aa.ProductID = bb.ProductID
ORDER BY TransactionID
OFFSET 10000 ROWS
FETCH NEXT 10 ROWS ONLY

 

        在實際比較這兩個語法後(透過Client Statistics),發現語法比較簡短所以傳輸量減少外,在執行時間上也有比較快一點,而成本也比原本的少4%,算是微有提升吧,希望正式版推出的時候效能會更好。

使用ROW_NUMBER語法的評估分析:



 

使用新語法(OFFSET與FETCH)的評估分析:


 

     以上主要介紹OFFSET與FETCH的使用方法,在使用上非常的方便,當然如果大家把他改成利用Storeed Procedure寫成一個分頁程式後,在執行與後續的利用一定會更好。

2011年2月23日 星期三

SQL Server 2012 Code Name(Denali) 新功能介紹與預覽

        微軟終於在2010/11/9推出了SQL Server 2012的測試版,名稱代號為SQL Server Denali,分為32-bit64-bit的版本,而版本代號為11.0.1103.9。

        在安裝前跟之前的版本一樣有一些必要安裝需要先行處理,而SQL Server 2012則要求需要先行安裝.NET 4.0,而安裝之後開啟SQL Server Management Studio後感覺與Visual Studio 2010非常的類似,據微軟的說法是已經將兩者進行整合,所以在使用上可以更方便。

        在此次的更新上,主要有三個部份,有二個是關於T-SQL的部份,而另一個則是增加在SQL Server Management Studio上的新功能,我大略的分成下列三個部份說明,下次我會再針對每一個功能進行詳細的操作。
  1. Ad-hoc Query Paging:在以往我們進行分頁的時候,大部份都是透過Order ByTOP (n)SQL Server 2005提出的新功能ROW_NUMBER來進行處理,而這提出的這個新功能正好可以大大的提昇分頁的效能,而且在分頁上的寫法更容易。(使用範例)
  2. Sequence:提供類似識別欄位的功能,可以讓多個表格更用一個識別子,不在像以前的識別欄位般,只能用在單一的表格中。(使用範例)
  3. Code Snippet:像許多的程式寫作時一樣,可以讓你利用樣版的機制,快速撰寫你的T-SQL語法。(使用範例)
安裝參考畫面:


 
 
 
 

     此畫面主要選擇要安裝那些元件
 

 
 
 
 
 
 
 

     開啟 [SQL Server Business Intelligence Development Studio] 之後發現Report Project所提供的圖表種類真的非常多,感覺非常的像Excel 2007與 2010。

 

其他相關網址:
  1. SQL Server 2012 Code Name(Denali) 新功能介紹與預覽
  2. SQL Server 2012(Code Name Denali) - 新T-SQL語法介紹 – 分頁功能
  3. SQL Server 2012(Code Name Denali) - 新T-SQL語法介紹 – Sequence
  4. SQL Server 2012(Code Name Denali) - 新T-SQL語法介紹 – Code Snippet Manager
  5. SQL Server 2012(Code Name Denali) - 以列為主的新儲存方式(雲端儲存架構)
  6. SQL Server 2012(Code Name Denali) - FileTable介紹
  7. 微軟介紹雲端平台就緒的資訊 - TechEd 2011
  8. SQL Server 2012 (Code Name Denali) - HA 新功能 - AlwaysOn
  9. SQL Server 2012 新功能 - AlwaysOn安裝與設定
  10. SQL Server 2012 RTM 預覽與介紹

2011年2月22日 星期二

安裝SQL Server 中的範例資料庫

        在你安裝完成SQL Server 2008R2SQL Server 2012(Denali CTP1)後,啟用資料庫時會發現竟然沒有範例資料庫(AdventureWorks)可以用,可是在安裝時已經有全部勾選了,還是沒有,後來發現是Microsoft已經範例資料庫放置在CodePlex的網站上,你可以直接上網下載即可。

       目前SQL Server 2008R2的版本為安裝檔的方式,安裝完成後再利用附加的方式或是復原的方式即可詳細的作法可以參考下列的網址,另外SQL Server 2012(Denali CTP1),是下載一個MDF檔,所以利用下列的語法附加掛上即可。

SQL Server code-named "Denali" CTP1now available.
SQL Server 2008R2
now available.
SQL Azure :
now available.
SQL Server 2008 :
still available.
SQL Server 2005 :
still available.


SQL Server 2012(Denali CTP1)安裝方式:
CREATE DATABASE AdventureWorks2008R2
ON (FILENAME = '<drive>:\<file path>\AdventureWorks2008R2_Data.mdf') 
FOR ATTACH_REBUILD_LOG ;

2011年2月21日 星期一

Genero Report 編譯問題 - Can't find the Reporting API Functions

        由於架構上需要改用新版的Genero Report來製作,所以參考了內建的範例檔,當新增一個應用程式進行撰寫時,竟然發生下列的編譯問題,但是下列的Reporting API Functions都是內建的,所以應該是有些Library沒有匯入所造成,透過下列的方式,便可以解決。

ERROR(-1338):The function 'fgl_report_loadcurrentsettings' has not been defined in any module in the program.
ERROR(-1338):The function 'fgl_report_selectdevice' has not been defined in any module in the program.
ERROR(-1338):The function 'fgl_report_selectpreview' has not been defined in any module in the program.
ERROR(-1338):The function 'fgl_report_commitcurrentsettings' has not been defined in any module in the program.

解決方式:點選需要編譯的應用程式後,在右下角的Properties ->External Dependencies加上libgre.42x即可。


2011年2月19日 星期六

SQL Server 儲存設備 (Storage) 最佳調整作業

        本篇主要參考Microsoft推出的一篇文章,內容主要介紹如何調整SQL Server資料庫的儲存設備(Storage),我目前發現在服務處理許多廠商的資料庫架構後,大家在儲存設備(Storage)的部份還是無法有效的設計,所以提供下列的文章再與大家分享,有錯的話再請留言告知,謝謝。

1. 了解應用程式對資料庫I/O的影嚮,如應用程式的讀寫比率與需求量,此部份可以透過Microsoft 提供的效能監視器來進行監控統計,在觀察的物件上,可參考下列的物件進行分析。
A.  Average read bytes/sec, average write bytes/sec
B.  Reads/sec, writes/sec
C.  Disk read bytes/sec, disk write bytes/sec
D.  Average disk sec/read, average disk sec/write
E.   Average disk queue length
2.  利用多顆磁碟的方式,有效的改善效能。
A. 使用File Groups的方式可以讓Backup / Restore等作業時分散運作,進而降低運作時間。
B. 使用多個資料檔(Data Files)可以將資料分散在多顆磁碟上,透過分散處理的機制,改善效能。
3. 不要一味地調整並最佳化磁碟的設計,有時候簡單的設計會得到更好的效能與可靠度。
A. 除非你非常的了解應用程式,要不然不要太過於調整I/O效能。
B. 確認了解I/O的成長趨視,並重新平衡的將資料放置在磁碟上。
4. 在部署前確認儲存設備的狀態與相關設定。
A. 實際進行一些簡單的壓力測試,可以了解到I/O的效能,而Microsoft提供的SQLIO可以有效的模擬SQL Server實際的讀寫動作,該軟體可以透過下列網址下載。SQLIO Disk Subsystem Benchmark Tool.
B. 另外使用IOMETER也可以有效的進行模擬測試。
5. 永遠將交易記錄檔(Log Files)放置在RAID 1+ 0 or RAID 1的磁碟陣列上。
A. 可以得到最好的硬碟失敗保護和最好的寫入效能。
備註:在一般上RAID 1+ 0將提供最好的生產力給寫入密集的應用程式。大部份為了節省經費都會利用RAID 5來取代,但是RAID 1+0 將提供最好的寫入效能比其他的RAID等級。
6. 將交易記錄檔(Log Files)與資料檔(Data Files)放置在不同的實體磁碟上。
A. 當上述的條件是不可能時,考慮系統上I/O的特性和群組化相似的I/O特性,在其他的硬碟上。
B. 結合異質的工作負載會造成負面的效果在整體效能上,如Exchange SQL 的資料檔(Data Files)在相同硬碟上。
7. 考慮進行TEMPDB的配置。
A. 確認移動TEMPDB 到合適和預定設定大小的硬碟空間上,在安裝SQL Server之後。
B. 如果將TEMPDB放置在RAID 1+ 0的磁碟上,可以獲得最佳的效能。
C. 對於TEMPDB,產生每一個CPU對應到1 資料檔(Data Files)
8. 連接資料檔(Data Files)分配的數量與CPU核心之間分配的關係
A. 建議上最好配置0.251個資料檔(Data Files)對於每一個CPU在主機上。
B. 在推薦上 TEMPDB 最好一個資料檔(Data Files)對應到一個CPU
C. 雙核心的CPU可以當成是2CPU
9. 不要忽略SQL Server的基礎設定
A. 在分配多個資料檔(Data Files)後,每一個大小應該都是相同的。
B. 預先設定資料檔(Data Files) 和交易記錄檔(Log Files) 的大小。
C.  不要依賴自動成長的選項,最好透過手動成長的方式進行處理,但是為了安全可以保留此選項。
10.  不要忽略磁碟的基礎設定
A. 從硬碟廠商更新至最新的HBA Drives .
B. 可以從硬碟廠商的網站取得最新的HBA Drives
C. 根據你系統的情況調整HBA Driver的設定值。
D. 確認你的磁碟陣列的韌體是更新到最新與最佳的等級。
E. 使用多重通道的軟體來達到HBALUN的平衡負載。
F.  簡化配置和提出可用度的優勢
G. Microsoft Multipath I/O (MPIO): 微軟提供驅動程式開發工具可用來建立 Device Specific Modules (DSM)

原文名稱:Storage Top 10 Best Practices

2011年2月18日 星期五

Genero Report - Report Writer token creation failed

            當執行 Genero Studio 內建的範例報表時,遇到下列的問題時,可以透過此文章所提供的方式進行處理。

ERROR(-6786):Report Writer token creation failed.
ERROR communicating with GRE: Response from channel is NULL. Please check your Java installation.


處理方式如下:
1、先確定你有安裝Java。
2、確認你有開啟GDC (Genero Desktop Client)。
3、進入 [控制台 ] -> [使用者帳戶和家庭安全] -> [使用者帳號] -> [變更使用者帳戶控制設定] -> 將警示更改成 [不要通知] 後再重開機即可。

2011年2月17日 星期四

Genero Studio Form 編譯錯誤 - Memory Fault

         在本機端進行畫面的編輯時,都可以正確執行,但是檔案更新至主機時,卻發生Memory Fault的錯誤,就連Genero Studio提供的範例檔也出錯,後來經同事指點後,發現原本是本機的Genero Studio的編譯器與主機上的編輯器不同所造成,後來再將舊版的Genero Studio裝上後,畫面重新編輯即可解決,最後注意本機環境的編譯器不可比主機上的版本還新。

主機上編譯譯版本查詢(下面三個指令皆可):
fglcomp -V
fglrun -V
fgllink -V

而Genero Studio的版本主要點選Help -> Abort即可得知。

2011年2月16日 星期三

下一個網路世代 - The next decade of the Internet

      網路的發展非常的快速,回想10年前,大家可能還在用數據機(Modem)撥接上網,忍受著56k的慢速上網,但是現在網路的速度不斷的提升,而且無線上網的普及化,讓行動上網更加的容易,但是讓我們回想下一個10年,你認為他會變成什麼樣子呢,我覺得科技會與人的生活會緊密的結合,由其是無線網路的發展,更可以讓網路與家電或其他3C產品更加容易的互動,而家電會自動學習使用者的習慣自動調整,如上班日與放假日,早上鬧鐘會自動播放預定的N首音樂,起床後會播放晨間新聞的重點頭條,而機器會自動產生預定的早餐等,當然還有更多的應用空間,大家可以參考下列的網址,你可以找到更多的想法。

參考來源:
http://ephemeralimmortal.wordpress.com/2011/01/15/web-3-0-the-next-decade-of-the-internet/

2011年2月15日 星期二

SQL Server 2005 Service Pack 4(SP4) - 更新說明

        在隔了兩年多,這一次SQL Server 2005又推出了新的Service Pack 4,這一次看起來改變的幅度不大,只有修正一些錯誤,並沒有提供新的功能,測試後也沒有發生問題。
這個 Service Pack 中所修正的錯誤如需有關 Bug 修正在 SQL Server 2005 的服務套件 4 按一下下面的文件編號,檢視 Microsoft 知識庫 中的文件:
摺疊此表格展開此表格

VSTS Bug 數目
KB 文件編號
描述
294192
2445326  (http://support.microsoft.com/kb/2445326/ )
FIX 當您嘗試執行 SSIS 2005 套件,如果您使用 multi-character 資料行分隔符號在一般檔案來源的同時,可能會發生 0xC02020A1 0xC020902A 0xC0202092 0xC0047038 錯誤
396531
980671  (http://support.microsoft.com/kb/980671/ )
修正在 SQL Server sa 登入雜湊的密碼編譯 Salt 變化缺乏
308002
968749  (http://support.microsoft.com/kb/968749/ )
已經安裝 MSXML 核心服務 6.0 Service Pack 2 時,SQL Server 2005 安裝就會失敗

在這個 Service Pack 中所修正的其他問題SQL Server 2005 的服務套件 4 也包含下列問題的解決方式:
摺疊此表格展開此表格

VSTS Bug 數目
描述
297747
當您使用 Windows 的內部資料庫時,不會增加多媒體計時器頻率。
555409
在高壓力的情況下延伸預存程序執行期間,可能會發生存取違規錯誤。


檔案下載位址:http://www.microsoft.com/downloads/details.aspx?FamilyID=b953e84f-9307-405e-bceb-47bd345baece&displayLang=zh-tw

更新說明:http://support.microsoft.com/kb/2463332