@sqlserver

Stories List
@wy123

SQLServer中,大表的數據刪除操作,單次刪除和批量多次刪除產生的事務日誌的差別

1,應用場景 SQLServer中一個大表(測試環境千萬級,實際情況下會更多,達到10億級),刪除其中大部分數據。然後測試分批多次刪除和一次性全部刪除產生的transaction log的日誌大小的問題。 另:受限於相關的表做了複製分發,因此無法通過備份部分數據後truncate table的方式來實現,也無法通過新建一個表,通過rename的方式來交換實現,這兩種方式不

wy123 Avatar

@wy123

Nickname MSSQL123

@wy123

SQLServer中,實測CPU主頻高低對計算密集型SQL執行速度的影響

從一個簡單的SQL來看,CPU主頻對計算密集型SQL執行速度影響的差別,測試語句有三個特點:簡單SQL,計算密集型SQL,循環多次執行來放大執行時間 1,構造一個簡單的插入語句SQL 2,通過隨機排序,來模擬計算密集型操作 3,通過循環來放大執行時間 完全一樣的SQL: 10年前的4代i7,老掉牙的PC級CPU了,但是主頻高,3.6GHz主頻的CPU,2秒鐘跑完 5年前的Xeon E5620,服

wy123 Avatar

@wy123

Nickname MSSQL123

@wy123

SQLServer Always On環境的數據庫備份

SQL Server的Always on環境的備份規則設置比較混亂,加上一個copy_only備份,更是亂上加亂,copy_only備份實在極少的特殊情況下使用的備份,企業級日常備份,不可能用copy_only備份的,因此這裏不討論copy_only備份。 Backup preference有多重設置,企業級生產環境保持默認就可以,這裏以默認設置為例 1、不管怎麼設置,正常的數據庫備份(fu

wy123 Avatar

@wy123

Nickname MSSQL123

@wy123

sqlserver系統表查出job的下一次運行時間異常現象

前兩天某SQLServer服務器斷斷續續出現性能問題,綜合排查之後懷疑是job定時任務引起的,於是查了一下job的schedule和最近一次執行情況。 大部分job的schedule都沒有問題,由於當前實例是啓用了複製分發,無意中喵到'Distribution clean up: distribution這個job的下一次執行時間明顯不正常,下一次運行時間跟上一次運行時間一樣??? 啓

wy123 Avatar

@wy123

Nickname MSSQL123

@wy123

MySQL,SqlServer,PostgreSQL中,如何實現鎖定一張表

最近有個需要求,需要在SqlServer中鎖定一張表後,然後搞一些事情,完成後解鎖。 如何鎖定一張表,在MySQL和PostgreSQL中都比較好處理。有專用的語法來實現,在SqlServer中並沒有對於“直接鎖定一張表的語法”,如何來處理? 變通一下也比較簡單,甚至比MySQL和postgresql都更簡單。 1,如何在MySQL中鎖定一張表 MySQL語法:lock tables t2

wy123 Avatar

@wy123

Nickname MSSQL123

@wy123

SqlServer 事務複製的兩個參數immediate_sync,allow_anonymous

SqlServer的事務複製中,immediate_sync和allow_anonymous兩個參數會影響到複製的後台行為和分發庫(distribution)的數據保留方式,這兩個參數單從名字上看,可能有些模稜兩可甚至雲裏霧裏,以下是個人結合複製的運維,對兩個參數的理解。 1,immediate_sync 參數含義:是否執行“立即同步”,立即同步啥?誰來同步?有啥作用?表面含義跟沒説一樣,完全看不

wy123 Avatar

@wy123

Nickname MSSQL123

@wy123

SqlServer 事務複製(transaction replication)的複製位點信息

在邏輯複製中,正如MySQL的show slave status,或者postgresql的邏輯複製pg_stat_replication的sent_lsn,來觀察複製進度的座標位點,其複製進度座標位置都存儲在複製的源(source)端。 SqlServer的事務複製則有一些不一樣,在發佈端和訂閲端分別有一個記錄複製信息的系統表, 1,在源端,有一個MSdistribution_hist

wy123 Avatar

@wy123

Nickname MSSQL123

@wy123

SQLServer中,大表的數據刪除操作,單次刪除和批量多次刪除產生的事務日誌的差別

1,應用場景 SQLServer中一個大表(測試環境千萬級,實際情況下會更多,達到10億級),刪除其中大部分數據。然後測試分批多次刪除和一次性全部刪除產生的transaction log的日誌大小的問題。 另:受限於相關的表做了複製分發,因此無法通過備份部分數據後truncate table的方式來實現,也無法通過新建一個表,通過rename的方式來交換實現,這兩種方式不

wy123 Avatar

@wy123

Nickname MSSQL123

@wy123

SQLServer中,實測CPU主頻高低對計算密集型SQL執行速度的影響

從一個簡單的SQL來看,CPU主頻對計算密集型SQL執行速度影響的差別,測試語句有三個特點:簡單SQL,計算密集型SQL,循環多次執行來放大執行時間 1,構造一個簡單的插入語句SQL 2,通過隨機排序,來模擬計算密集型操作 3,通過循環來放大執行時間 完全一樣的SQL: 10年前的4代i7,老掉牙的PC級CPU了,但是主頻高,3.6GHz主頻的CPU,2秒鐘跑完 5年前的Xeon E5620,服

wy123 Avatar

@wy123

Nickname MSSQL123

@wy123

SQLServer Always On環境的數據庫備份

SQL Server的Always on環境的備份規則設置比較混亂,加上一個copy_only備份,更是亂上加亂,copy_only備份實在極少的特殊情況下使用的備份,企業級日常備份,不可能用copy_only備份的,因此這裏不討論copy_only備份。 Backup preference有多重設置,企業級生產環境保持默認就可以,這裏以默認設置為例 1、不管怎麼設置,正常的數據庫備份(fu

wy123 Avatar

@wy123

Nickname MSSQL123

@wy123

sqlserver系統表查出job的下一次運行時間異常現象

前兩天某SQLServer服務器斷斷續續出現性能問題,綜合排查之後懷疑是job定時任務引起的,於是查了一下job的schedule和最近一次執行情況。 大部分job的schedule都沒有問題,由於當前實例是啓用了複製分發,無意中喵到'Distribution clean up: distribution這個job的下一次執行時間明顯不正常,下一次運行時間跟上一次運行時間一樣??? 啓

wy123 Avatar

@wy123

Nickname MSSQL123

@wy123

MySQL,SqlServer,PostgreSQL中,如何實現鎖定一張表

最近有個需要求,需要在SqlServer中鎖定一張表後,然後搞一些事情,完成後解鎖。 如何鎖定一張表,在MySQL和PostgreSQL中都比較好處理。有專用的語法來實現,在SqlServer中並沒有對於“直接鎖定一張表的語法”,如何來處理? 變通一下也比較簡單,甚至比MySQL和postgresql都更簡單。 1,如何在MySQL中鎖定一張表 MySQL語法:lock tables t2

wy123 Avatar

@wy123

Nickname MSSQL123

@wy123

SqlServer 事務複製的兩個參數immediate_sync,allow_anonymous

SqlServer的事務複製中,immediate_sync和allow_anonymous兩個參數會影響到複製的後台行為和分發庫(distribution)的數據保留方式,這兩個參數單從名字上看,可能有些模稜兩可甚至雲裏霧裏,以下是個人結合複製的運維,對兩個參數的理解。 1,immediate_sync 參數含義:是否執行“立即同步”,立即同步啥?誰來同步?有啥作用?表面含義跟沒説一樣,完全看不

wy123 Avatar

@wy123

Nickname MSSQL123

@wy123

SqlServer 事務複製(transaction replication)的複製位點信息

在邏輯複製中,正如MySQL的show slave status,或者postgresql的邏輯複製pg_stat_replication的sent_lsn,來觀察複製進度的座標位點,其複製進度座標位置都存儲在複製的源(source)端。 SqlServer的事務複製則有一些不一樣,在發佈端和訂閲端分別有一個記錄複製信息的系統表, 1,在源端,有一個MSdistribution_hist

wy123 Avatar

@wy123

Nickname MSSQL123