簡介
本文列出 Microsoft SQL Server 2012 Service Pack 2 (SP2) 中已修正的錯誤。
記事
- 此處未記載的其他修正程式也可能包含在 Service Pack 中。
- 此清單會在更多文章發行時更新。
如需有關如何取得 SQL Server 2012 Service Pack 的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
2755533 如何取得 SQL Server 2012 的最新版 Service Pack 注意 如需有關應該從可用下載清單中選取哪種下載的詳細資訊,請查看此處的版本資訊。
更多資訊
SQL Server 2012 Service Pack 是累積更新,可將 SQL Server 2012 的所有版本和服務等級升級至 SP2。 除了本文所列的修正程式之外,此 Service Pack 最多還包含 Microsoft SQL Server 2012 SP1 累積更新 9 (CU9) 。
如需有關可用於 SQL Server 2012 SP1 之累積更新套件的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
2772858 在 SQL Server 2012 Service Pack 1 發行之後所發行的 SQL Server 2012 組建 (英文)
此 Service Pack 所修正的問題
如需有關 SQL Server 2012 SP2 中已修正的錯誤的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件。
| VSTS 錯誤編號 | 知識庫文件編號 | 描述 |
|---|---|---|
| 1374617 | 2028830 | 修正:當您實作 SQL Server 2008 或 SQL Server 2012 容錯移轉叢集安裝時,共用元件安裝在錯誤的位置 |
| 1703014 | 2963382 | 修正:在 SSAS 2012 中執行 Cube 建立 MDX 查詢時無法連線到伺服器 |
| 2011247 | 2927741 | 修正:對 SSRS 2012 報告使用鑽研動作時,影像無法在網頁中正確顯示 |
| 2034994 | 2963383 | 修正:當您在 SSRS 2012 中使用 HPB 轉譯器檢視報表時,文字會被截斷 |
| 1769469 | 2963384 | 修正:當 SQL Server 2012 中的 tempdb 資料庫記錄檔滿時,SQL Server 會當機 |
| 1973168 | 2963386 | 修正:當匯出至 Excel 工作表的訂閱大於 10 MB 時,SSRS 2012 因 IsolatedStorageException 而失敗 |
| 1973196 | 2963388 | 修正:SSRS 2012 無法將大於 10 MB 的報表匯出為 Excel 格式 |
| 787358 | 2963404 | 修正:復原導致資料庫在 SQL Server 2012 中進入可疑模式 |
| 1043717 | 2806979 | 修正:當您在 SQL Server 2012 中針對啟用 RCSI 的資料庫中的資料表執行查詢時,效能不佳 |
| 1178585 | 2963412 | SQL Server 2012 SP2 中的新 DMF sys.dm_fts_index_keywords_position_by_document |
| 1182241 | 2966520 | 修正:於 1 月 1 日重新啟動 SSRS 2012 中的 Reporting Services Windows 服務時,不會建立新的記錄檔 |
| 1240848 | 2966519 | 修正:SQL Server 2012 記錄檔備份失敗時沒有錯誤訊息 |
| 1253861 | 2936004 | 修正:在本機模式的 Report Viewer 2012 UI 中完成資料來源繫結時,Visual Studio 2012 因存取違規而當機 |
| 1262029 | 2966522 | 修正:檔案共用訂閱不會填入 SSRS 2012 中的描述資料行 |
| 1481773 | 2966523 | 修正:指定 SSRS 2012 報告時,「名稱」下拉式清單為空白 |
| 1419367 | 2964762 | 修正:當您在 SSAS 2012 中使用探索命令時,將記錄事件識別碼 22 或錯誤0xC1000016 |
| 2103903 | 2972285 | 修正:在 SQL Server 2012 中使用 SSISDB 做為部署存放區時的效能問題 |
| 2021581 | 2965035 | SQL Server 2012 Service Pack 2 中的 SSAS 2012 記錄功能改良功能 |
| 203749 | 2952444 | 修正:在 SQL Server 2012 中使用資料表變數時效能不佳 |
| 2095064 | 2936328 | 修正:當您對具有 SQL Server 2008 R2 或 SQL Server 2012 中保留計算資料行的資料表執行 CHECKTABLE 或 CHECKDB 時,會發生存取衝突 |
| 1222472 | 2827857 | 修正:DTA 無法在使用補充字元定序的 SQL Server 2012 執行個體上運作 |
| 2124209 | 2939277 | 修正:當您在 SQL Server 中使用平行查詢計劃執行包含 UNION 運算子的查詢時,結果不正確 |
下列問題的解決方法也包含在 SQL Server 2012 SP2 中。
| VSTS 錯誤編號 | 描述 |
|---|---|
| 950185 | 改善當您使用大型 HTML 報表時,有關處理錯誤和警告的訊息傳遞。 |
| 950189 | 改善當您使用具有大量參數的報表時,處理錯誤和警告的相關訊息。 |
| 994470 | 當您使用區塊模式一元運算子時,結果不正確。 |
| 1041277 | DPM 在具有 AlwaysOn 次要的伺服器上的完整備份將轉換為copy_only備份。 |
| 1278767 | 表格式執行個體效能計數器:Memory\VertiPaq <TypeName> KB 的值永遠為 0。 |
| 1355346 | 結束 SCOPE 陳述式不符合開始的 SCOPE 陳述式。 |
| 1374617 | 修正:當您實作 SQL Server 2008 容錯移轉叢集安裝時,共用元件安裝在錯誤的位置 |
| 1610447 | 未初始化的物件在使用條件計算執行 DAX 運算式時會導致當機,並可能導致錯誤結果。 |
| 1610492 | 當您使用 PowerPivot v2 11.0.3000.0 時,簡單的 DAX 查詢會傳回非預期的結果。 |
| 2060218 | 當使用無效的 InstanceId 剖析 SSRS 設定檔時,出現 “ACTIONABLE_HEAP_CORRUPTION”。 |
| 2065570 | RING_BUFFER_NONYIELD_PROCESSTABLE環緩衝區中的 NonYieldProcessTable 記錄沒有使用者和核心處理時間。 |
| 2075161 | 在 SSRS 2012 記錄檔中提供平台資訊 |
| 1347204 | 修正:當您在 SQL Server 2012 中跨資料庫交易的欄位具有順序預設值的欄位中插入資料時,發生存取違規 |
| 1184332 | 如果針對模型資料庫執行尾部記錄備份,模型資料庫將在伺服器重新啟動期間凍結於還原狀態,這將導致 SQL Server 無法成功啟動。 這是因為在伺服器啟動期間無法建立 Tempdb 資料庫,且您收到下列錯誤訊息:「無法開啟資料庫 '<DatabaseName>'」 |
| 1243853 | 還原大量記錄資料庫的日誌備份時,會發生錯誤 3456,其中新增了初始大小大於 64704KB 的新資料檔案。 |
| 1404999 | 在具有LOCK_TIMEOUT設定的工作階段中發出捨棄資料庫快照時,可能會發生逾時錯誤,後面接著判斷提示錯誤。 |
| 1190211 | 使用 InstallShield 安裝 SQL Server 時,最後會處於停止回應狀態。 如需詳細資訊,請移至 此Microsoft 知識庫文章。 |
| 1386073 | 安裝 SQL Server 2012 SP2 之後,當設定管理員或服務控制管理員都停止 SQL Server 時,會在關機後立即將資訊訊息記錄到 SQL Server。 在舊版中,我們會在停止內部服務之後發出此訊息,例如 .NET Framework、Service Broker。 |
社群提交的 Connect 項目修正
| 連線錯誤識別碼 | 描述 |
|---|---|
| 714689 | 當您針對多部伺服器實施企業管理架構,且清單中的其中一個伺服器發生錯誤時,評估結果會多次寫入至輸出 xml 檔案。 |
| 735543 | 當資料庫的備份還原為相同執行個體上的不同資料庫時,資料庫會進入還原模式。 |
| 736509 | 您無法偵錯在 SSMS) 中呼叫sp_executesql SQL Server Management Studio (預存程序。 當按下 F11 時,您會收到「物件參考未設定為物件的執行個體」錯誤訊息。 |
| 740181 | SSMS 無法完全管理 SQL Server Express 中的 Full-Text。 |
| 745566 | SQL Server SMO 忽略 SQL Server 2012 和 SQL Server 2014 中的預設限制式。 |
| 764197 | SSMS 不一致地處理編號預存程序。 |
| 769121 | 「欄 '<欄名稱>' 不屬於表格摘要。 當複寫資料表具有相同的名稱但位於不同的結構描述時, (System.Data) 」錯誤訊息。 |
| 773710 | 還原為包含全文檢索索引的資料庫快照集之後,您必須重新啟動SQL Server、中斷連結後附加資料庫,或讓資料庫離線然後設定上線,才能建立任何ft_catalogs。 |
| 774317 | SSMS 偶爾會在關閉時當機,然後導致它自動重新啟動 |
| 785064 | 當您在 Business Intelligence Development Studio 中使用客戶管線元件時出現「『null』值對『串流』無效」錯誤訊息 (BIDS) 。 |
| 785151 | 當您在已開啟 [顯示實際查詢計劃] 的情況下執行查詢時,會傳回 Null 的結果,並收到下列錯誤訊息: Error: Msg 50000, Level 16, State 10, Procedure test, Line 34 字串或二進位資料會被截斷。 |
| 791929 | 當您將資料插入具有觸發程序的分割檢視時,出現「系統判斷提示檢查失敗」錯誤訊息。 |
| 797967 | 建立指令碼會在 SSMS 中為資料行層級權限編寫指令碼時複製這些陳述式。 |
| 799430 | 當您嘗試重新整理工作列上的 SSMS 視窗圖示時,SSMS 可能會當機。 |
| 804901 | 部署大型專案的新版本時,在部署至 SSIS 目錄資料庫 (SSISDB) 期間發生逾時。 此外,您收到下列錯誤訊息: 部署專案失敗。 如需詳細資訊,請查詢作業識別碼 '219' 的operation_messages檢視。 (Microsoft SQL Server,錯誤:27203) 無法部署專案。 修正問題,稍後再試一次。:逾時到期。 在作業完成之前超過逾時等待的時間,或是伺服器未回應。 該聲明已終止。 |
| 805659 | 「SQL 陳述式的某些部分嵌套太深。 重寫查詢或將其分成較小的查詢」錯誤訊息,在您剖析或執行預存程序時出現。 |
SQL Server 2012 SP2 重點
以下是 SQL Server 2012 Service Pack 2 (又稱為 SP2) 中一些變更的重點:
AlwaysOn
支援能力:
- 訊息 35285 如預期般顯示為資訊訊息,而不是錯誤。
功能:
- SQL 寫入器支援 COPY_ONLY備份: Data Protection Manager (DPM) 具有 AlwaysOn 次要伺服器的完整備份將轉換為 COPY_ONLY 備份。
Analysis Services (又稱為 SSAS)
新增對本機 Cube 建立案例的支援:
- 使用 SQL Server 2012 Analysis Services (SSAS 2012) SP2 時,可以建立一個本機 Cube,用來連線至在關閉 SQL 瀏覽器之靜態非預設連接埠上執行的 SSAS。 這項新功能是由 msmdsrv.ini 中的新組態設定所控制:「ConfigurationSettings\LocalCubeServerPortInConnectionString」。若要啟用此功能,請將值設定為 1。 如果 SSAS 2012 已設定為容錯移轉叢集或是在預設連接埠上執行,則此設定將不會有任何影響。
新增更多記錄:
- 此 Service Pack 會在 SSAS 記錄檔中新增更多資訊,以協助改進疑難排解。 這包括 SSAS 版本、電腦名稱、NetBIOS 名稱、CPU 數目、RAM 大小、IP、連接埠、通訊協定類型、鎖死、鎖定逾時,以及一些其他資訊。
Integration Services (又稱為 SSIS)
SSISDB 鎖死與清理效能改善
簡介
SSISDB 資料庫同時呼叫預存程序時發生鎖死SSISDB.catalog.create_execution
- 已修正 SSISDB 並行和鎖死問題。 然而,這並不能解決所有問題。 目前的因應措施是將工作錯開幾秒鐘。 但您可能無法使用此因應措施。
- SSISDB 維護作業效能不佳
SSISDB 維護工作有可用的 Hotfix。
架構
以前的型號:
- 每個交易都會建立憑證和對稱金鑰,也必須在維護或清除工作中儲存和處理。
新型號:
- 在目錄屬性資料表SERVER_OPERATION_ENCRYPTION_LEVEL中引入新資料列,並預設為 PER_EXECUTION 為了保持回溯相容性,可以將值變更為PER_PROJECT為每個專案建立一個金鑰或憑證組。 從 PER_EXECUTION 變更為 PER_PROJECT 之前,需要進行完整清除。 為完整清理引入了兩個新的商店程序。
變更摘要:
在 SSISDB 屬性資料表SERVER_OPERATION_ENCRYPTION_LEVEL中引入新資料列:
- 只有兩個值有效 (1 和 2) 。
- 值 “1”:預設值。 根據執行層級使用對稱金鑰和憑證進行加密。 安全性高,但可能有效能或鎖死問題。
- 值 “2”:根據專案層級使用對稱金鑰和憑證進行加密。 降低安全性、解決效能或鎖死問題。
引進兩個新的預存程序 (SPs) Cleanup_server_logs 和 cleanup_server_execution_keys
SPs 是專為當您將加密層級從「1」變更為「2」時使用而設計。您可以先執行可快速完成的Cleanup_server_logs,讓 SSISDB 進入良好狀態。 SSISDB 資料庫已準備好變更為加密層級。
Cleanup_server_keys 所花費的時間比Cleanup_server_logs長。 不過,它會在加密層級變更為「2」後執行,並在非尖峰時間定期執行。
Cleanup_server_logs:僅清理所有作業記錄。
Cleanup_server_execution_keys:清除用來保護敏感性執行參數的對稱金鑰和憑證。
@cleanup\_flag (1,2) ) 中的 int (
- cleanup_flag = 1:卸除執行層級 對稱金鑰和憑證
- cleanup_flag = 2:卸除專案層級的對稱金鑰和憑證 (只有在刪除此特定專案且清除與此專案相關的所有作業日誌都已清除) 時,才會卸除它們。
@delete\_batch\_size int = 1000
- 此儲存程序的一次呼叫會捨棄一些金鑰或憑證。
在 internal.cleanup_server_retention_window 中,將delete_batch_size從 10 變更為 1000。
關聯式引擎
選用支援資料表變數資料列計數以改善查詢計劃:
如果資料表變數與 SQL Server 中的其他資料表聯結,可能會因查詢計劃選取效率低下而導致效能降低,因為 SQL Server 在編譯查詢計劃時不支援統計資料或追蹤資料表變數中的列數。
在 SQL Server 2012 SP2 中,引入了新的追蹤旗標,可讓查詢最佳化工具使用插入資料表變數中的列數相關資訊,以選取更有效率的查詢計劃。 啟用追蹤旗標 2453 以啟用此行為。
附註:
- 在某些情況下,啟用追蹤旗標 2453 可能會導致效能降低,因為需要額外的編譯來計算在執行期間插入資料表變數的實際資料列數。 通常,如果表格變數具有大量與其他表格聯結的列,或具有多個列並用於巢狀循環連接運算子的外部,且內部有處理大量數據列的計劃,則會從此追蹤旗標中受益。
- 透過使用 OPTION (RECOMPILE) 查詢提示,可以在其他版本的 SQL Server 上實現類似的行為。 不過,查詢提示需要偵測及修改所有因資料表變數所驅動的大量工作而遭受不良計劃選擇之困擾的查詢,而啟用追蹤旗標 2453 可能會影響現有的工作負載。
改良平行查詢執行計畫的效能疑難排解
- DMV sys.dm_exec_requests現在會傳回平行查詢執行計畫的正確cpu_time值。 統計資料 IO 診斷現在會報告平行查詢執行計畫的正確邏輯讀取。
改良的雜湊溢出診斷
- 如果雜湊聯結或雜湊彙總運算子在查詢執行期間將資料溢出到 tempdb 資料庫,現在會為 STATISTICS IO 診斷報告對應的 I/O。
改良的全文檢索索引診斷
- 在某些情況下,可能難以瞭解如何傳回某些全文檢索查詢的結果。 全文搜尋子系統與外部斷詞符和停止清單交互,由於這種交互作用,文件中關鍵字的位置資訊可能與實際文字中觀察到的不同。 這在進行 '片語' 或 'NEAR' 搜尋時非常重要,因為內部計算中使用單詞之間的 delta 來尋找匹配的文件。
- 在 SQL Server 2012 SP2 中,新增了動態管理功能 (DMF) ,以提供對文件中索引關鍵字定位資訊的存取。 新的 DMF 類似於現有的 DMF sys.dm_fts_index_keywords_by_document,並具有下列語法:sys。 dm_fts_index_keywords_position_by_document
(
DB_ID ( database_name ) ,OBJECT_ID ( table_name )
) - 它不會傳回發生次數計數,而是傳回每個出現項目及其在索引文件中位置的相關資訊。
- 此資訊可用來查看文字與內部索引之間的對應,其中會顯示搜尋片語的 delta 差異 (如果有)。 這有助於理解片語搜尋的結果。
複寫
支援能力
異動複寫:
已將詳細訊息新增至歷程記錄表格的統計資料,以及客服專員記錄中的更詳細訊息:
- 在統計資料> xml 輸出中<新增了文字訊息,以定義 logreader 和散發商代理程式中的不同狀態。
- 新增了經銷商和日誌閱讀器參數化命令的文章層級統計資料。
- 在經銷商代理程式中新增輸出檔案的略過命令數目。
- 新增在經銷商代理程式中執行結構描述變更所花費的時間。
LogReader:擷取使用者傾印時,記錄會 .TXT 檔案中新增。
對等: 已更新插入、更新和刪除程序,以提供下列衝突訊息的詳細資料:
- 資料表名稱
- 主索引鍵欄名稱和值
- 目前版本
- 試版本
- 後版本
合併式複寫:
- 當合併代理程式的輸出詳細層級設定為 4 時,新增在記錄檔中的追蹤旗標 101 的輸出。
功能性
異動複寫:
- 對等複制現在支援使用 Update 或 對文字欄進行部分更新。撰寫語意。
合併式複寫:
- 清理預存程序已經過重新設計,以避免重複上傳資料。
Reporting Services (又稱為 SSRS)
包含處理錯誤和警告的記錄訊息,以防止對 CSS、大型 HTML 報告的常見呼叫。
概觀:
- 偵測報表設計,以判斷報表設計是否會成為大型 HTML 報表,並可能導致效能問題。 這應該可以透過檢查 [互動式頁面高度] 和 [寬度] 設定輕鬆偵測到。
使用者案例:
您會在 Report Builder 中建立報告。 您在 InteractiveSize 屬性中輸入值 '0'。 您會收到一個彈出視窗,其中包含有關可能影響效能的下列訊息:
注意
將互動式高度設定為 0 MAT 會影響效能。
儲存引擎
效能加強
Service Pack 2 中數個效能增強功能,下列文章所述:
- 當 SQL Server 2012 中的資料庫鎖定活動增加時,會發生效能問題
- 在 SQL Server 2012 執行外部頁面處理期間,NUMA 環境中發生效能問題
- ALTER INDEX 之後效能降低...ONLINE 作業在 SQL Server 2012 中止
DMV 增強功能
- sys.dm_db_session_space_usage反映每個工作階段由使用者物件在 tempdb 資料庫中佔用的空間量。 當刪除的資料列數超過 1024 頁時,將會延遲這些頁面的取消配置。 在 SQL Server 2012 Service Pack 2 中,DMV 也會將遞延配置單位的空間使用量納入名為 user_objects_deferred_dealloc_page_count 的新欄位中。
- 如果 SQL Server 安裝在容錯移轉叢集上cluster_nodename sys.dm_server_services現在將在資料欄位中正確指定節點名稱。
環緩衝區增強功能
應用程式網域RING_BUFFER_CLRAPPDOMAIN的通道緩衝區在 [DoomReason>] <欄位中包含卸載應用程式網域的原因:
- 1 = 由 DDL 作業卸載,例如卸除組件。
- 2 = 由安全性相關作業解除載入,例如變更權限。
- 3 = 因為記憶體壓力處理而卸載。
- 4 = 因為初始化失敗而卸載。
對應的擴充事件app_domain_ring_buffer_recorded會在事件資料欄位中包含卸載的原因doom_reason。
在資源監視器監視的狀態中偵測到變更時,RING_BUFFER_RESOURCE_MONITOR具有項目。 此外,針對系統和程序資源通知,集區通知也可在 IndicatorsPool/IndicatorsPool> 節點中使用<。><
Resource_monitor_ring_buffer_recorded擴充事件會在 [pool_indicators資料] 欄位中包含全集區通知。
RING_BUFFER_NONYIELD_PROCESSTABLE包括處理程序名稱,以及記錄通道緩衝區項目時系統中執行的最多 8192 個執行緒的其他資訊。
備份與還原增強功能
從 Service Pack 2 開始,不再允許使用 norecovery 選項備份模型的尾部記錄。
錯誤記錄檔中的備份與還原完成訊息包含持續時間和輸送量資訊:
- 備份資料庫在 0.026 秒內成功處理了 298 頁, (89.261 MB/秒) 。
- 還原資料庫已成功在 0.016 秒內處理 298 頁, (145.050 MB/秒) 。
Extended Events
在 SQL Server 2012 Service Pack 2 中新增或修改下列擴充事件:
記憶體配置:
- 擴充事件 page_allocated 和 page_freed 可用於查看 SQL Server 記憶體的熱門消費者。 從 Service Pack 2 開始,這些擴充事件也會報告在查詢執行期間配置和釋放的保留記憶體。
鬼魂清理:
在資料表或索引中刪除記錄時,這類刪除作業絕不會實際從頁面中移除記錄,只會將它們標記為已刪除或已建立影像。 這是效能最佳化,可讓刪除作業更快速地完成。 然後,稱為 Ghost 清理任務的後台任務以實際方式刪除所有已刪除的記錄。 Service Pack 2 中新增了數個擴充事件,以提供有關此工作各個階段的深入解析:
- ghost_cleanup_task_start
- ghost_cleanup_task_suspend
- ghost_cleanup_task_packet_enqueue
- ghost_cleanup_task_process_packet
- ghost_cleanup_task_process_pages_for_db_packet
參考資料
如需有關如何判斷目前 SQL Server 版本和版次的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
321185 如何判斷 SQL Server 及其元件的版本和版次