2013年的第一個月,很高興的受到台灣SQL PASS的邀約,與大家分享議題,希望各位 SQL Server 同好踴躍報名,也希望可以與現場的各位互相討論與分享,詳細的資訊如下,再請參考。
主題:我在微軟學習SQL Server的生活
講師:台灣微軟 SQL Server 技術支援團隊/第一屆 SQL Hero 盟主 Cary
日期:2013/01/17 18:30~21:00
地點:果子咖啡(台北市民生東路三段140巷11號)
費用:最低消費150元
備註:請於報名時選擇餐點或飲料
報名網址:http://sdrv.ms/RMsj4l
參考地圖:
檢視較大的地圖
2012年12月26日 星期三
2012年12月21日 星期五
如何在Excel 2013中使用PowerView
我在前面花了很多的章節介紹如何架設PowerView的環境,但坦白說環境的細節繁多,所以無法快速的應用,但好消息的是,在Office 2013中,透過Excel已經可以快速的使用PowerView的功能,所以我們就來介紹如何透過Excel進而設計PowerView。
參考連結:
PowerView環境安裝與建置
http://caryhsu.blogspot.tw/2012/09/powerview.html
我們就以下列網址中提供的範例進行介紹,下列是Olympics選手的參選資料,我們將透過這個檔案來一步一步的說明,並介紹PowerView中的新地圖 (Map) 元件。
1、啟用PowerPivot與PowerView的增益集。
首先在我們開啟Excel後,請先點選 [檔案] -> [選項] -> [增益集],在下方中的 [管理],請選擇 [COM 增益集],然後請選擇 [Microsoft Office PowerPivot for Excel 2013] 與 [PowerView] 兩個項目後,選擇確定即可。
2、點選 [PowerPivot] 的頁籤後,先將你的資料全選後,再點選 [加入至資料模型],此時會跳出一個視窗,由於我們的資料第一行有包含標題,所以請將視窗中的 [我的資料表 (含標題)] 勾選起來後,再選確定即可。
3、建立好後,就會跳出PowerPivot的視窗與連結的資料。
4、選擇 [插入] -> [PowerView],如果你是第一次使用時,這時候會請你安裝Sliverlight,裝完之後,即會出會PowerView的設計畫面。
5、請勾選 [PowerView 欄位] 中的 Country(IOC) Code與 Name的欄位,然後在Name的欄位中,選擇 [計數 (不是空白)]。
6、此時請點選表格後,再點 [設計] -> [地圖],即可完成。
此時你就可以看到他會將原本統計各個國家選手數量的分析表,透過地圖的方式秀出,而圓圈的大小就是代表選手的多寡,透過這個方式,可以原本單純的數字,透過直覺化的方式進行呈現,更一目了然。
參考連結:
Visualizing the Olympics with Power View in Excel 2013: Day 1
http://blogs.msdn.com/b/seanboon/archive/2012/07/30/visualizing-the-olympics-with-power-view-in-excel-2013-day-1.aspx
關鍵字:PowerView、Excel 2013、Reporting Service、Microsoft BI、SSRS
參考連結:
PowerView環境安裝與建置
http://caryhsu.blogspot.tw/2012/09/powerview.html
我們就以下列網址中提供的範例進行介紹,下列是Olympics選手的參選資料,我們將透過這個檔案來一步一步的說明,並介紹PowerView中的新地圖 (Map) 元件。
1、啟用PowerPivot與PowerView的增益集。
首先在我們開啟Excel後,請先點選 [檔案] -> [選項] -> [增益集],在下方中的 [管理],請選擇 [COM 增益集],然後請選擇 [Microsoft Office PowerPivot for Excel 2013] 與 [PowerView] 兩個項目後,選擇確定即可。
2、點選 [PowerPivot] 的頁籤後,先將你的資料全選後,再點選 [加入至資料模型],此時會跳出一個視窗,由於我們的資料第一行有包含標題,所以請將視窗中的 [我的資料表 (含標題)] 勾選起來後,再選確定即可。
3、建立好後,就會跳出PowerPivot的視窗與連結的資料。
4、選擇 [插入] -> [PowerView],如果你是第一次使用時,這時候會請你安裝Sliverlight,裝完之後,即會出會PowerView的設計畫面。
5、請勾選 [PowerView 欄位] 中的 Country(IOC) Code與 Name的欄位,然後在Name的欄位中,選擇 [計數 (不是空白)]。
6、此時請點選表格後,再點 [設計] -> [地圖],即可完成。
此時你就可以看到他會將原本統計各個國家選手數量的分析表,透過地圖的方式秀出,而圓圈的大小就是代表選手的多寡,透過這個方式,可以原本單純的數字,透過直覺化的方式進行呈現,更一目了然。
參考連結:
Visualizing the Olympics with Power View in Excel 2013: Day 1
http://blogs.msdn.com/b/seanboon/archive/2012/07/30/visualizing-the-olympics-with-power-view-in-excel-2013-day-1.aspx
關鍵字:PowerView、Excel 2013、Reporting Service、Microsoft BI、SSRS
2012年12月18日 星期二
如何管理遺失索引與維護索引的最佳數量
在我的前面幾篇中已有介紹到多種進行索引的管理與維護的方法,但本篇再介紹實際上Index的數量與Missing Indexes的相關介紹,基本上相信大家多少對Missing Indexes有相當的了解,所謂Missing Indexes就是你的查詢在執行時,由於沒有增加索引,所以造成查詢必需從頭掃到尾,也就是造成Table Scan。
在進行分析後,許多的客戶對於Missing Indexes有點難抉擇,因為他們的表格中已有相當多的Index存在,加了之後反而可能會有效能更慢的問題,的確Index會加快Select的速度,減少 Table Scan,但是相對的也會增加Insert與Update的執行時間,所以本篇我們就來介紹如何進行這些相關的作業。
先行參考文章:
索引分析與維護建議
http://caryhsu.blogspot.tw/2012/02/blog-post_14.html
SQL Server 上大型資料表的索引效能調整與維護
http://caryhsu.blogspot.tw/2011/08/sql-server.html
效能調整 - 填滿因數對資料庫的影響
http://caryhsu.blogspot.tw/2012/02/blog-post.html
Missing Indexes查詢:
下列的語法可以查出目前系統 "從開機" 到目前的執行統計,藉以找出查詢中沒有使用到Index也就是使用Table Scan的查詢有那些。
PS:因為下列的語法是透過DMV進行查詢,所以如果你希望一直保持記錄與資訊的話,建議你可以將資訊回寫於Table中。
基本上述的查詢在Column_usage有三種類型,EQUALITY、INEQUALITY、INCLUDE,在建立Index也會不同,詳細的資訊可以參考下列的第一個網址,將會介紹如何透過此語法並實際的建立Index。
現在另外一個問題來了,就是如果我的表格中已有多個Index時,是否該如何選擇合適的Index,所以透過上一個查詢中找出Missing Indexes的部份,當然也可以找出較不常用的Index,所以就可以藉此將沒有使用到或不常使用的索引給刪除,藉以提高索引的最大效能。
找出未使用的索引(Index):
找出較不常使用的索引(Indexes):
參考網址:
關鍵字:SQL Server、Index、Miss Indexes、how to evaluate and manage indexes、索引維護
在進行分析後,許多的客戶對於Missing Indexes有點難抉擇,因為他們的表格中已有相當多的Index存在,加了之後反而可能會有效能更慢的問題,的確Index會加快Select的速度,減少 Table Scan,但是相對的也會增加Insert與Update的執行時間,所以本篇我們就來介紹如何進行這些相關的作業。
先行參考文章:
索引分析與維護建議
http://caryhsu.blogspot.tw/2012/02/blog-post_14.html
SQL Server 上大型資料表的索引效能調整與維護
http://caryhsu.blogspot.tw/2011/08/sql-server.html
效能調整 - 填滿因數對資料庫的影響
http://caryhsu.blogspot.tw/2012/02/blog-post.html
Missing Indexes查詢:
下列的語法可以查出目前系統 "從開機" 到目前的執行統計,藉以找出查詢中沒有使用到Index也就是使用Table Scan的查詢有那些。
PS:因為下列的語法是透過DMV進行查詢,所以如果你希望一直保持記錄與資訊的話,建議你可以將資訊回寫於Table中。
SELECT Top 10
statement AS [database.scheme.table],
column_id , column_name, column_usage,
migs.user_seeks, migs.user_scans,
migs.last_user_seek, migs.avg_total_user_cost,
migs.avg_user_impact
FROM sys.dm_db_missing_index_details AS mid
CROSS APPLY sys.dm_db_missing_index_columns (mid.index_handle)
INNER JOIN sys.dm_db_missing_index_groups AS mig
ON mig.index_handle = mid.index_handle
INNER JOIN sys.dm_db_missing_index_group_stats AS migs
ON mig.index_group_handle=migs.group_handle
ORDER BY migs.avg_user_impact DESC
基本上述的查詢在Column_usage有三種類型,EQUALITY、INEQUALITY、INCLUDE,在建立Index也會不同,詳細的資訊可以參考下列的第一個網址,將會介紹如何透過此語法並實際的建立Index。
現在另外一個問題來了,就是如果我的表格中已有多個Index時,是否該如何選擇合適的Index,所以透過上一個查詢中找出Missing Indexes的部份,當然也可以找出較不常用的Index,所以就可以藉此將沒有使用到或不常使用的索引給刪除,藉以提高索引的最大效能。
找出未使用的索引(Index):
SELECT OBJECT_SCHEMA_NAME(I.OBJECT_ID) AS SchemaName,
OBJECT_NAME(I.OBJECT_ID) AS ObjectName,
I.NAME AS IndexName
FROM sys.indexes I
WHERE
-- only get indexes for user created tables
OBJECTPROPERTY(I.OBJECT_ID, 'IsUserTable') = 1
-- find all indexes that exists but are NOT used
AND NOT EXISTS (
SELECT index_id
FROM sys.dm_db_index_usage_stats
WHERE OBJECT_ID = I.OBJECT_ID
AND I.index_id = index_id
-- limit our query only for the current db
AND database_id = DB_ID())
ORDER BY SchemaName, ObjectName, IndexName
找出較不常使用的索引(Indexes):
declare @dbid int
select @dbid = db_id()
select objectname=object_name(s.object_id), s.object_id,
indexname=i.name, i.index_id,
user_seeks, user_scans, user_lookups, user_updates
from sys.dm_db_index_usage_stats s, sys.indexes i
where database_id = @dbid and
objectproperty(s.object_id,'IsUserTable') = 1
and i.object_id = s.object_id
and i.index_id = s.index_id
order by (user_seeks + user_scans + user_lookups + user_updates) asc
參考網址:
- Using Missing Index Information to Write CREATE INDEX Statements
- http://msdn.microsoft.com/en-us/library/ms345405.aspx
- SQL Server Indexes Best Practices
- http://msdn.microsoft.com/library/cc917672
- Indexes IN SQL 2005/2008
- http://www.sqlskills.com/BLOGS/KIMBERLY/post/Indexes-in-SQL-Server-20052008-Best-Practices-Part-1.aspx
- Statistics Used by Query Optimizer
- http://technet.microsoft.com/en-us/library/cc966419.aspx
- How can SQL Server 2005 help me evaluate and manage indexes?
- http://blogs.msdn.com/b/sqlcat/archive/2006/02/13/531339.aspx
- A performance profile of OLTP applications
- http://blogs.msdn.com/b/sqlcat/archive/2006/06/23/tom-davidson-sqlcat-best-practices.aspx
關鍵字:SQL Server、Index、Miss Indexes、how to evaluate and manage indexes、索引維護
2012年12月2日 星期日
SQL Server - 初使連線過慢問題處理
最近接到一個Case,客戶表示他有多台電腦,但是有特定的電腦連線到SQL Server時都會特別的久,但是其他的電腦都不會,而且透過電腦名稱(Host Name)或IP結果都相同,而且當下觀察Server與Client端的資源與效能都很正常,所以當下猜想,或許與網路有相關,這個是問題最後是透過網路封包分析後才找出問題並解決的,所以在此將這個案例分享出來。
由於網路的部份可能牽涉會有很多的層面,所以進一步與客戶確認,如是否為同一網址,防火牆的設定等,最後決定透過網路封包分析的方式進行確認,所以我就請客戶透過Netmon的程式進行兩邊封包的收集,封包分析如下:
PS:netmon是Microsoft所推出的一套免費的封包捉取與分析的工具,大家可以透過下列的網址進行下載,也請大家多多利用。
<br>
下載連結:
Microsoft Network Monitor 3.4
http://www.microsoft.com/en-us/download/details.aspx?id=4865
問題分析:
1、在有問題的電腦封包上發生在一開始的初使連線都需要等待5秒的時間,才可以與Server建立連線。
2、在正常電腦上的封包,發現很快的就可以建立連線。
3、在Server上的封包看到也是相同需要5秒的時間才可以正常的連線。
4、確認主機上的效能資訊,看起來也是正常。
解決方式 :
根據上述的分析,與網路Team的同事討論後,懷疑可能是系統網路中的一個New Feature所造成,後來嘗試下列的步驟將此功能關閉後,問題就解決了。
Set the EnableTCPA registry entry to "0" on the SQL Server computer.
To do this, follow these steps:
1. Click Start, click Run, type regedit, and then click OK.
2. Locate the EnableTCPA registry entry under the following registry subkey:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
3. Right-click EnableTCPA, and then click Modify.
4. In the Value data box, type 0, and then click OK.
5. Exit Registry Editor.
6. Restart Computer.
參考知識文件:
A Windows Server 2003-based computer responds slowly to RDP connections or to SMB connections that are made from a Windows Vista-based computer
http://support.microsoft.com/kb/947773
關鍵字:SQL Server、Network Monitor、Network Packet、SQL Server Connectity
由於網路的部份可能牽涉會有很多的層面,所以進一步與客戶確認,如是否為同一網址,防火牆的設定等,最後決定透過網路封包分析的方式進行確認,所以我就請客戶透過Netmon的程式進行兩邊封包的收集,封包分析如下:
PS:netmon是Microsoft所推出的一套免費的封包捉取與分析的工具,大家可以透過下列的網址進行下載,也請大家多多利用。
<br>
下載連結:
Microsoft Network Monitor 3.4
http://www.microsoft.com/en-us/download/details.aspx?id=4865
問題分析:
1、在有問題的電腦封包上發生在一開始的初使連線都需要等待5秒的時間,才可以與Server建立連線。
2、在正常電腦上的封包,發現很快的就可以建立連線。
4、確認主機上的效能資訊,看起來也是正常。
解決方式 :
根據上述的分析,與網路Team的同事討論後,懷疑可能是系統網路中的一個New Feature所造成,後來嘗試下列的步驟將此功能關閉後,問題就解決了。
Set the EnableTCPA registry entry to "0" on the SQL Server computer.
To do this, follow these steps:
1. Click Start, click Run, type regedit, and then click OK.
2. Locate the EnableTCPA registry entry under the following registry subkey:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
3. Right-click EnableTCPA, and then click Modify.
4. In the Value data box, type 0, and then click OK.
5. Exit Registry Editor.
6. Restart Computer.
參考知識文件:
A Windows Server 2003-based computer responds slowly to RDP connections or to SMB connections that are made from a Windows Vista-based computer
http://support.microsoft.com/kb/947773
關鍵字:SQL Server、Network Monitor、Network Packet、SQL Server Connectity
訂閱:
文章 (Atom)