SQL 語句效能優化進階:MAX/COUNT 效能實測與資料型態影響分析
初始測試:COUNT(*) vs MAX() DECLARE @dddd DATETIME = GETDATE(); SELECT MAX(num) FROM
MyBatis 動態 SQL 與關聯查詢完整指南:if/choose/set/foreach、一對一/一對多/多對多、延遲載入
動態 SQL 核心元素 if - 條件拼接 <select id=selectUser resultType=User parameterType=Us
SQL Server 2016 資料庫範圍設定:MAXDOP、參數嗅探、舊版基數估計、查詢優化修正
資料庫範圍設定簡介 SQL Server 2016 引入 ALTER DATABASE SCOPED CONFIGURATION,將原本僅能在執行個體層級或透過
SQL Server 檢測未釋放游標:sys.dm_exec_cursors 即時監控與清理
場景模擬 會話 1 開啟游標後未關閉釋放: DECLARE Cursor_Test CURSOR FOR SELECT * FROM dbo.TEST; OPE
SQL PRINT 與 sp_helptext 長度限制突破:自訂長字串列印與原始碼檢視預存程序
內建限制痛點 PRINT:單位元組字符集 8000 字元、雙位元組 4000 字元 sp_helptext:單行 255 字元,格式與原始碼脫節 突破 P
SQL Server 預存程序交易處理三種模式:XACT_ABORT、@@ERROR 檢查、TRY-CATCH
危險的隱性行為 預設情況下,SQL Server 遇執行錯誤僅回滾該陳述式,**繼續執行後續陳述式**,導致交易部分成功: BEGIN TRAN INSERT
GeoServer SQL View 靜態發布地圖圖層:參數化視圖與 PostgreSQL Function 整合
架構背景 GeoServer + PostgreSQL + OpenLayers/Leaflet 是主流 GIS 技術棧。傳統發布需逐一設定圖層,面對多商場、多
SQL Server NULL 值正確應用與儲存空間揭密:IS NULL、ANSI_NULLS、位元遮罩
NULL 核心定義 NULL 代表「未知值」,不同於空字串或零值。任兩個 NULL 不相等,比較結果為 UNKNOWN。 測試環境建立 CREATE TA
SQL Server 2016 查詢存放區實戰:偵測計畫回歸與強制執行計畫
計畫回歸問題背景 DBA 常遇情境:昨日查詢正常,今日突然變慢。根因多為計畫回歸——優化器選擇了不同(較差)的執行計畫。傳統排查需手動比對計畫緩存、統計資料、參
SQL Server 與 MySQL 修改身分欄位值完整方案:限制、變通與最佳實務
SQL Server 平台限制與變通 鐵律: SQL Server 2005+ 嚴禁直接 UPDATE 身分欄位,報錯「無法更新識別欄」。 方案一:移除再重建
SQL Server REPLACE 函數完整應用指南:字串替換、巢狀替換與效能注意事項
語法與參數 REPLACE ( string_expression, string_pattern, string_replacement ) string
SQL Server XML 變數轉 JSON 文字函數:fnXmlToJson 完整實作
函數建立腳本 CREATE FUNCTION [dbo].[fnXmlToJson] (@XmlData XML) RETURNS NVARCHAR(MAX)
SQL Server 觸發器完整教學:DML/INSTEAD OF、Inserted/Deleted 魔術表、實戰範例
觸發器核心概念 觸發器是特殊預存程序,針對特定資料表的 INSERT/UPDATE/DELETE 動作自動觸發執行。分類: DML 觸發器:AFTER(動作後
SQL Server 資料庫顯示「唯讀」解決方案:檔案權限修正 (Error 5120)
問題情境 資料庫檔案移至新磁碟後重新附加,資料庫顯示「唯讀」圖示: 嘗試透過屬性介面關閉唯讀失敗 在「屬性 → 選項 → 狀態」將「資料庫為唯讀」改為 Fa
ASP.NET Core 與 MSSQL 高效能分頁實作:Keyset Pagination 與索引優化
高效能分頁核心原則 傳統 OFFSET/FETCH 或 ROW_NUMBER() 分頁在深分頁(大頁碼)時效能急劇下降,因需掃描並捨棄大量前置列。現代高效能分頁
SQL TRUNCATE vs DELETE 差異實測:觸發器觸發、記錄寫入、身分值重設
測試環境建立 -- Table1: 主表,含觸發器 CREATE TABLE Table1 (ID INT NOT NULL, FOID INT NOT NUL
SQL Server 無法縮減記錄檔原因分析與解決:VLF 過少與批次腳本容錯
問題重現 記錄檔縮減 Job 報錯: 排查過程 執行 DBCC LOGINFO(Ncdb) 確認 VLF 僅 2 個,無法縮減。批次腳本遇單一資料庫失