套用到
SQL Server 2012 Analysis Services SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Business Intelligence SQL Server 2012 Standard SQL Server 2012 Web

簡介

本文列出Microsoft SQL Server 2012 服務包 2 (SP2) 中已修復的錯誤。註釋

  • 此處未說明的其他修正也可能包含在服務包中。

  • 當更多文章發布時,此清單將持續更新。

欲了解更多如何取得 SQL Server 2012 服務包的資訊,請點擊以下文章編號以瀏覽 Microsoft 知識庫中的文章:

2755533 如何取得 SQL Server 2012 最新服務包 備註 關於從可用下載清單中選擇哪個下載的更多資訊,請查看處的發布說明。

其他相關資訊

SQL Server 2012 服務包是累積式更新,並可將 SQL Server 2012 的所有版本與服務等級升級至 SP2。 除了本文列出的修正外,本服務包包含Microsoft SQL Server 2012 SP1 累積更新 9 (CU9)欲了解更多關於 SQL Server 2012 SP1 可累積更新套件的資訊,請點擊以下文章編號以查看 Microsoft 知識庫中的文章:

2772858 SQL Server 2012 版本是在 SQL Server 2012 服務包 1 發布之後釋出的

本服務包已修正的問題

欲了解更多關於 SQL Server 2012 SP2 已修正錯誤的資訊,請點擊以下文章編號以瀏覽 Microsoft 知識庫中的文章。

VSTS 錯誤編號

知識庫文件編號

描述

1374617

2028830

修正:當您實作 SQL Server 2008 或 SQL Server 2012 故障轉移叢集安裝時,共享元件安裝在錯誤的位置

1703014

2963382

修正:當你在 SSAS 2012 執行 Cube 建立 MDX 查詢時,無法連接到伺服器

2011247

2927741

修正:當你對 SSRS 2012 報告使用 DrillThrough 動作時,網頁上的圖片顯示不正確

2034994

2963383

修正:使用 HPB 渲染器在 SSRS 2012 中查看報告時,文字被截斷

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

2012 SQL Server SP2 新 DMF sys.dm_fts_index_keywords_position_by_document

1182241

2966520

修正:當你在 1 月 1 日重新啟動 SSRS 2012 的 Windows 服務 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 中使用 Discover 指令時,事件 ID 22 或錯誤 0xC1000016 會被記錄

2103903

2972285

修正:在 SQL Server 2012 中使用 SSISDB 作為部署儲存庫時,會出現效能問題

2021581

2965035

SQL Server 2012 服務包 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

表格實例 perfmon 計數器的值:Memory\VertiPaq <TypeName> KB 永遠是 0。

1355346

結尾的 SCOPE 陳述句與開頭的 SCOPE 陳述不符。

1374617

修正:在實作 SQL Server 2008 故障轉移叢集安裝時,共享元件安裝在錯誤的位置

1610447

未初始化的物件會導致當機,並在執行帶有條件計算的 DAX 運算式時產生錯誤結果。

1610492

使用 PowerPivot v2 11.0.3000.0 時,一個簡單的 DAX 查詢會得到意想不到的結果。

2060218

當 SSRS 組態檔案被解析時,使用無效的 InstanceId。ACTIONABLE_HEAP_CORRUPTION

2065570

RING_BUFFER_NONYIELD_PROCESSTABLE環緩衝區中的 NonYieldProcessTable 記錄沒有使用者和核心的處理時間。

2075161

提供SSRS 2012日誌中的平台資訊

1347204

修正:當你在 SQL Server 2012 中,將資料插入欄位序列為跨資料庫交易預設值的資料表時,存取違規

1184332

若對模型資料庫執行尾部日誌備份,模型資料庫會在伺服器重啟時凍結於還原狀態,導致 SQL Server 無法成功啟動。 這是因為 Tempdb 資料庫在伺服器啟動時無法建立,且你會收到以下錯誤訊息:「Database '<DatabaseName>' 無法開啟」

1243853

錯誤 3456 發生在還原一個已大量記錄資料庫的日誌備份時,若新增了一個初始大小超過 64704KB 的資料檔案。

1404999

當你在有LOCK_TIMEOUT設定的會話中丟棄資料庫快照時,可能會發生逾時錯誤,接著是斷言錯誤。

1190211

使用 InstallShield 安裝 SQL Server 會陷入當機狀態。 欲了解更多資訊,請參閱 這篇知識庫文章。

1386073

安裝 SQL Server 2012 SP2 後,當 SQL Server 從組態管理員或服務控制管理員中停止運作時,關機通知會立即向 SQL Server 登錄一則資訊訊息。 在早期版本中,我們會在內部服務(如 .NET Framework、服務代理)停止後發出這些訊息。

社群提交的連結物品修正

Connect Bug ID

描述

714689

當你對多台伺服器實作企業管理框架時,當列表中的某台伺服器發生錯誤時,評估結果會多次寫入 xml 檔案。

735543

當資料庫在同一實例上以不同資料庫還原時,資料庫會進入還原模式。

736509

你無法除錯呼叫 sp_executesql 的儲存程序SQL Server Management Studio (SSMS) 。 按下 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 (BIDS) 處理客戶管線元件時,會出現「null 值不適用於 'stream'」的錯誤訊息。

785151

當你開啟「顯示實際查詢計畫」時執行查詢,會回傳 Null 結果,並收到以下錯誤訊息:錯誤:Msg 50000,Level 16,狀態 10,程序測試,第 34 行 字串或二進位資料會被截斷。

791929

當你將資料插入帶有觸發器的分割檢視時,會顯示「系統斷言檢查失敗」的錯誤訊息。

797967

在 SSMS 中撰寫欄位層級權限的腳本時,Create script 會重複這些語句。

799430

當你嘗試刷新工作列上的 SSMS 視窗圖示時,SSMS 可能會當機。

804901

部署大型專案的新版本時,部署至 SSIS 目錄資料庫 (SSISDB) 時會遇到逾時。 此外,您會收到以下錯誤訊息:專案部署失敗。 欲了解更多資訊,請查詢operation_messages視圖中的操作識別碼「219」。 (Microsoft SQL Server,錯誤:27203) 未能部署專案。 先修好問題,稍後再試。:逾時已過。 逾時時間在操作完成前已過,或伺服器未回應。 該聲明已被終止。

805659

「你的SQL語句有部分嵌套得太深了。 當你解析或執行儲存程序時,會重寫查詢或將其拆分成較小的查詢」錯誤訊息。

SQL Server 2012 SP2 重點介紹

以下是 2012 SQL Server Service Pack 2 (也稱為 SP2) 中的一些變更重點:

  • 可支持性:

    • 訊息 35285 如預期般以資訊訊息形式顯示,而非錯誤訊息。

  • 功能:

    • SQL Writer 支援COPY_ONLY備份:資料保護管理員 (DPM,) 在帶有 AlwaysOn 的伺服器上的完整備份會轉為COPY_ONLY備份。

  • 新增支援本地方塊創建情境:

    • 當你使用 SQL Server 2012 Analysis Services (SSAS 2012) SP2 時,你可以建立一個本地立方體,連接到運行在靜態非預設埠口且關閉 SQL 瀏覽器的 SSAS。 這項新功能由 msmdsrv.ini 中的一個新設定控制:「ConfigurationSettings\LocalCubeServerPortInConnectionString」。 要啟用此功能,請將值設為 1。 如果 SSAS 2012 被設定為故障轉移叢集或在預設埠上運行,這個設定將不會有影響。

  • 增加伐木:

    • 此服務包為 SSAS 日誌檔案新增更多資訊,以協助改善故障排除。 這包括 SSAS 版本、電腦名稱、NetBIOS 名稱、CPU 數量、記憶體容量、IP、埠口、協定類型、死鎖、鎖定逾時,以及其他一些資訊。

  • SSISDB 死結與清理效能提升

    • 簡介

      • SSISDB 資料庫中對儲存程序的同時呼叫時SSISDB.catalog.create_execution死結

        • SSISDB 的共行事件和死結問題已經修正了。 然而,這並不能解決所有問題。 目前的解決方法是將工作錯開幾秒鐘。 但你可能不會用這個變通方法。

        • SSISDB 維護工作效能不佳

      • SSISDB 維護工作有熱修正。

    • 架構

      • 舊款:

        • 每個交易都會產生憑證與對稱金鑰,這些金鑰也必須在維護或清理任務中儲存與處理。

      • 新模式:

        • 在目錄屬性表SERVER_OPERATION_ENCRYPTION_LEVEL中新增一列,並預設為 PER_EXECUTION以保持向下相容,值可改為PER_PROJECT為每個專案建立一對金鑰或憑證。 從PER_EXECUTION轉為PER_PROJECT前,必須進行全面清理。 引入兩項全新門市清潔程序。

      • 變更摘要:

        • 在 SSISDB 屬性表中新增一列SERVER_OPERATION_ENCRYPTION_LEVEL:

          • ) 1 和 2 (只有兩個值有效。

          • 值「1」:預設值。 依執行層級使用對稱金鑰與憑證加密。 安全性很高,但可能會有效能或死結問題。

          • 值「2」:依專案層級以對稱金鑰與憑證加密。 安全性較低、效能問題或死結問題。

        • 引入兩個新的儲存程序 (SP) Cleanup_server_logs 和 cleanup_server_execution_keys

          • SP設計用於將加密等級從「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) )

            • 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 可能會導致效能下降,因為執行時需要額外編譯以計算表格變數中實際插入的列數。 通常,如果一個表格變數有大量列與其他資料表相連,或有多列且用於巢狀迴圈連接運算子的外側,內側有處理大量列的計畫,則會從這個追蹤標誌中受益。

      • 類似的行為也可SQL Server透過使用 OPTION (重新編譯) 查詢提示來實現。 然而,查詢提示需要偵測並修改所有因大量工作量由資料表變數驅動而導致計畫選擇不佳的查詢,同時啟用追蹤旗標 2453 可能會影響現有工作負載。

  • 平行查詢執行計畫的效能故障排除提升

    • DMV sys.dm_exec_requests現在能準確回傳平行查詢執行計畫的 cpu_time 值。 STATISTICS IO 診斷現在能準確報告平行查詢執行計畫的邏輯讀取。

  • 改良的雜湊洩漏診斷

    • 若雜湊連接或雜湊彙總運算子在查詢執行時將資料洩漏至 tempdb 資料庫,則會報告相應的輸入輸出以供 STATISTICS IO 診斷。

  • 改良的全文索引診斷

    • 在某些情況下,可能難以理解某些全文查詢結果如何回傳。 全文搜尋子系統會與外部的斷字器和停止列表互動,因此文件中關鍵字的位置資訊可能與實際文本中觀察到的不同。 這在進行「短語」或「NEAR」搜尋時非常重要,因為詞語間的差異會被用於內部計算以尋找匹配文件。

    • 2012 年 SQL Server 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 ) )

    • 它不會回傳出現次數,而是回傳每個事件及其在索引文件中的位置資訊。

    • 這些資訊可用來檢視文本與內部索引之間的對應,從而顯示搜尋詞組的差異(若有的話)。 這有助於理解詞彙搜尋的結果。

  • 可支援性

    • 交易複製:

      • 歷史表中新增的冗長訊息,以及客服員日誌中更詳細的訊息:

        • 新增文字訊息至 <統計> XML輸出,以定義日誌讀取器與分發代理中的不同狀態。

        • 新增了條目層級的統計資料,用於發行者和日誌閱讀器參數化指令。

        • 在分發代理中新增了許多跳過的指令以輸出檔案。

        • 在發行代理中修改架構時,會花更多時間。

      • LogReader:當使用者擷取檔案時,日誌紀錄會被加入 .TXT 檔案中。

      • 對點對點:插入、更新與刪除程序已更新,以提供以下衝突訊息的細節:

        • 表格名稱

        • 主鍵欄位名稱與值

        • 現行版本

        • 預版本

        • 後續版本

    • 合併複製:

      • 當合併代理的輸出冗長等級設為 4 時,會新增在日誌檔中的追蹤旗標 101。

  • 功能性

    • 交易複製:

      • 點對點複製現在支援使用 Update 或 。寫作語意。

    • 合併複製:

      • 清理儲存程序已重新設計,以避免重複上傳資料。

  • 日誌訊息處理錯誤與警告,以防止頻繁呼叫 CSS、大型 HTML 報告。

    • 概述:

      • 偵測報表設計,以判斷該報表設計是否會產生龐大的 HTML 報表,並可能造成效能問題。 這應該可以透過檢視互動式頁面的高度與寬度設定輕鬆察覺。

    • 使用者情境:

      • 你可以在 Report Builder 中建立一份報告。 你在 InteractiveSize 屬性中輸入值 '0'。 您會收到一個彈出視窗,內含以下關於潛在效能影響的警告訊息:

        將互動式高度設為 0 材料會影響效能。

  • 性能提升

    • 服務包 2 中若干效能提升,詳見以下文章:

      • 當 SQL Server 2012 中資料庫鎖定活動增加時,會產生效能問題

      • 在 SQL Server 2012 的外文書處理過程中,NUMA 環境中會出現效能問題

      • 在 ALTER 索引後效能下降...ONLINE 操作在 SQL Server 2012 中被中止

    • 車輛管理局(DMV)的強化

      • sys.dm_db_session_space_usage 反映使用者物件在 tempdb 資料庫中每個會話所佔用的空間。 當刪除的頁面列數超過 1024 頁時,這些頁面的取消分配會被延後。 在2012 SQL Server服務包2中,DMV也會將延遲分配單位的空間使用納入一個名為user_objects_deferred_dealloc_page_count的新欄位。

      • sys.dm_server_services現在會在故障轉移叢集上安裝SQL Server時,能正確指定欄位中的節點名稱cluster_nodename。

    • 環狀緩衝區增強

      • 應用程式網域的環狀緩衝區RING_BUFFER_CLRAPPDOMAIN在 <DoomReason> 欄位中包含了應用程式網域卸載的原因:

        • 1 = 由 DDL 操作(如卸組件)卸載。

        • 2 = 透過安全相關操作(如變更權限)卸載。

        • 3 = 因記憶體壓力處理而卸載。

        • 4 = 因初始化失敗而卸載。

      • 對應的擴展事件app_domain_ring_buffer_recorded會在事件資料欄位中doom_reason載入原因。

      • RING_BUFFER_RESOURCE_MONITOR 在偵測到 Resource Monitor 監控狀態變更時會產生條目。 此外,系統與流程資源通知也可在 <IndicatorsPool> </IndicatorsPool> 節點中提供。

      • Resource_monitor_ring_buffer_recorded擴展事件包含pool_indicators資料欄位的全池通知。

      • RING_BUFFER_NONYIELD_PROCESSTABLE包含程序名稱及其他資訊,最多可達 8192 執行緒,這些執行緒在記錄環緩衝區條目時仍在系統中運行。

    • 備份與還原增強功能

      • 從服務包 2 開始,不再允許備份帶有無復原選項的模型尾部日誌。

      • 錯誤日誌中的備份與還原完成訊息包含持續時間與吞吐量資訊:

        • 備份資料庫成功在 0.026 秒內處理 298 頁 (89.261 MB/s) 。

        • RESTORE DATABASE 成功在 0.016 秒內處理 298 頁, () 145.050 MB/s。

    • 延伸賽事

      • 以下擴展事件在 SQL Server 2012 服務包 2 中已新增或修改:

        • 記憶體配置:

          • 延伸事件page_allocated與page_freed可用來查看SQL Server記憶體的主要使用者。 從服務包 2 開始,這些擴展事件也會報告在查詢執行時被分配並釋放的保留記憶體。

        • 鬼魂清理:

          • 當資料表或索引中的紀錄被刪除時,這種刪除操作並不會實際移除頁面上的紀錄,只會標記為已刪除或重影。 這是一種效能優化,讓刪除操作能更快完成。 一個稱為幽靈清理任務的背景任務會實體移除所有已刪除的紀錄。 服務包 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 及其元件的版本與版本

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。