今天同事問了我一個SQL的問題,關於SQL Server內部儲存結構的,我覺得挺有意思,所以寫下這篇部落格討論並歸納了一下。問題是這樣的:首先我們建立兩張表,一張表的列長度是4039位元組,另一張表的長度是4040位元組,他們就只有一個位元組的差距,比如以下建立表的SQL:Code highlighting produced by Actipro CodeHighlighter
實際工作中有時候需要把大量資料匯入資料庫,然後用於各種程式計算,本實驗將使用5中方法完成這個過程,並詳細記錄各種方法所耗費的時間。 本實驗中所用到工具為VS2008和SQL SERVER 2000、SQL SERVER 2008,分別使用5中方法將100萬條資料匯入SQL 2000與SQL 2008中,實驗環境是DELL 2850雙2.0GCPU,2G記憶體的伺服器。感興趣的朋友可以下載原始碼自己驗證一下所用時間。
問題描述安裝完SQL Server 2008 R2後,發現通過SSMS (SQL Server Management Studio)找不到安裝在本地的預設資料庫執行個體(確切地說是本地機器都找不到,只能看到本機\SQLEXPRESS,有點偏差,因為此是此問題已經修複後的) 開啟SQL Server Confirmation Manager試圖尋找問題 在SQL Server Services下出現錯誤The remote procedure call failed. [0x800706be]
標題所描述的功能是簡單的,下面的例子也很簡單,但是你可以根據自己的需要進行擴充功能,我這裡只是拋磚引玉而以,呵呵……,其實你有時間可以自己做一個SQL Server Profiler玩一玩。第一步:添加引用:Microsoft.SqlServer.ConnectionInfoCode highlighting produced by Actipro CodeHighlighter
Sql Server Profiler作為Microsoft Sql Server資料庫系列的效能工具,通過它可以對資料庫的健全狀態進行即時跟蹤,從中可以找到慢查詢或者死結的SQL語句,從而去最佳化系統。本文介紹如果通過Silverlight來對Sql Server Profiler進行即時監控(資料庫環境以Sql Server 2005為例) 首先,先來看下SqlServer資料庫內建的效能工具Sql Server
1.對查詢進行最佳化,應盡量避免全表掃描,首先應考慮在 where 及 order by 涉及的列上建立索引。 2.應盡量避免在 where 子句中對欄位進行 null 值判斷,否則將導致引擎放棄使用索引而進行全表掃描,如: select id from t where num is null 可以在num上設定預設值0,確保表中num列沒有null值,然後這樣查詢: select id from t where