/*
孤立帳戶:
就是資料庫的帳戶只有username而沒有sqlserverlogin。
原因:
為該資料庫的sysusers系統表中存在username,而在master資料庫的syslogins中卻沒有對應的login。
*/
--可以將被"孤立"的帳號列出
exec sp_change_users_login 'Report'
--將資料庫使用者對應至新的SQLServer登入
EXEC sp_change_users_login 'Update_One', 'User', 'login';
--使用 Auto_Fix 將現有使用者對應至相同名稱的登入
EXEC sp_change_users_login 'Auto_Fix', 'UserName'
2010年9月22日 星期三
使用SQL SERVER內建的DMV收集效能資訊
--使用SQL SERVER內建的DMV收集效能資訊
USE CustomLogging;
--建立儲存效能資訊的TABLE
IF NOT EXISTS
(
SELECT name
FROM sys.[tables]
WHERE [name] = 'dm_os_performance_counters'
)
CREATE TABLE dbo.dm_os_performance_counters
(
[object_name] VARCHAR(128), [counter_name] VARCHAR(128),
[instance_name] VARCHAR(128), [cntr_value] bigint,
[date_stamp] datetime
);
--使用SQL SERVER內建的DMV(動態管理檢視):sys.dm_os_performance_counters去收集資訊
INSERT INTO dbo.dm_os_performance_counters
([object_name], [counter_name], [instance_name],
[cntr_value], [date_stamp])
SELECT [object_name], [counter_name], [instance_name],
[cntr_value], GETDATE()
FROM sys.[dm_os_performance_counters]
WHERE [object_name] = 'SQLServer:Buffer Manager';
--找出最新的效能資訊
SELECT [object_name], [counter_name], [instance_name], [cntr_value]
FROM
(
SELECT [object_name], [counter_name], [instance_name], [cntr_value], [date_stamp],
ROW_NUMBER() OVER(PARTITION BY [counter_name] ORDER BY [date_stamp] DESC) AS 'rn'
FROM dbo.[dm_os_performance_counters]
) TEMP
WHERE rn = 1;
USE CustomLogging;
--建立儲存效能資訊的TABLE
IF NOT EXISTS
(
SELECT name
FROM sys.[tables]
WHERE [name] = 'dm_os_performance_counters'
)
CREATE TABLE dbo.dm_os_performance_counters
(
[object_name] VARCHAR(128), [counter_name] VARCHAR(128),
[instance_name] VARCHAR(128), [cntr_value] bigint,
[date_stamp] datetime
);
--使用SQL SERVER內建的DMV(動態管理檢視):sys.dm_os_performance_counters去收集資訊
INSERT INTO dbo.dm_os_performance_counters
([object_name], [counter_name], [instance_name],
[cntr_value], [date_stamp])
SELECT [object_name], [counter_name], [instance_name],
[cntr_value], GETDATE()
FROM sys.[dm_os_performance_counters]
WHERE [object_name] = 'SQLServer:Buffer Manager';
--找出最新的效能資訊
SELECT [object_name], [counter_name], [instance_name], [cntr_value]
FROM
(
SELECT [object_name], [counter_name], [instance_name], [cntr_value], [date_stamp],
ROW_NUMBER() OVER(PARTITION BY [counter_name] ORDER BY [date_stamp] DESC) AS 'rn'
FROM dbo.[dm_os_performance_counters]
) TEMP
WHERE rn = 1;
2010年9月19日 星期日
如何檢視DB的log檔並且壓縮
--為保險起見,要先備份DB的log檔
--查看recovery_model
SELECT recovery_model_desc FROM sys.databases WHERE name = 'CustomLogging'
--設定查看recovery_model為SIMPLE
ALTER DATABASE CustomLogging SET recovery SIMPLE
--查看修改後的recovery_model
SELECT recovery_model_desc FROM sys.databases WHERE name = 'CustomLogging'
--查看硬碟空間
EXEC xp_fixeddrives
-- 記下尚未壓縮LOG檔之前的LOG檔大小
EXEC sp_helpdb CustomLogging
-- 壓縮LOG檔
DBCC shrinkfile(CustomLogging_log, 0)
-- 記下壓縮LOG檔之前的LOG檔大小
EXEC sp_helpdb CustomLogging
--查看硬碟空間
EXEC xp_fixeddrives
--查看recovery_model
SELECT recovery_model_desc FROM sys.databases WHERE name = 'CustomLogging'
--設定查看recovery_model為SIMPLE
ALTER DATABASE CustomLogging SET recovery SIMPLE
--查看修改後的recovery_model
SELECT recovery_model_desc FROM sys.databases WHERE name = 'CustomLogging'
--查看硬碟空間
EXEC xp_fixeddrives
-- 記下尚未壓縮LOG檔之前的LOG檔大小
EXEC sp_helpdb CustomLogging
-- 壓縮LOG檔
DBCC shrinkfile(CustomLogging_log, 0)
-- 記下壓縮LOG檔之前的LOG檔大小
EXEC sp_helpdb CustomLogging
--查看硬碟空間
EXEC xp_fixeddrives
訂閱:
文章 (Atom)