最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Sql Server緩沖池、連接池等基本知識詳解

 更新時間:2024年09月04日 10:21:14   作者:碼農(nóng)研究僧  
這篇文章主要介紹了Sql Server緩沖池、連接池等基本知識,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

緩存池

緩存機(jī)制是指將經(jīng)常訪問的數(shù)據(jù)或查詢結(jié)果保存在內(nèi)存中,以提高查詢性能和整體系統(tǒng)響應(yīng)速度

緩沖池 (Buffer Pool):

  • SQL Server 中最大的一塊內(nèi)存區(qū)域,用于存儲從磁盤讀取的頁,以減少對磁盤的直接訪問
  • 緩沖池中的頁包括數(shù)據(jù)頁、索引頁、系統(tǒng)表頁等

計劃緩存 (Plan Cache):

  • 將執(zhí)行過的查詢計劃緩存在計劃緩存中,以便重復(fù)使用,減少查詢解析和優(yōu)化的開銷
  • 查詢計劃是查詢優(yōu)化器生成的執(zhí)行查詢的步驟

數(shù)據(jù)緩存 (Data Cache):

  • 數(shù)據(jù)緩存是緩沖池的一部分,專門用于緩存數(shù)據(jù)頁
  • 當(dāng)查詢訪問表中的數(shù)據(jù)時,SQL Server 會首先檢查數(shù)據(jù)緩存,如果數(shù)據(jù)已經(jīng)在緩存中,則直接返回,否則從磁盤讀取并緩存

一、查看緩存使用情況

-- 查看緩沖池使用情況
DBCC DROPCLEANBUFFERS;  -- 清除緩沖池

SELECT 
    COUNT(*) AS cached_pages_count,
    (COUNT(*) * 8.0) / 1024 AS cached_pages_in_MB
FROM sys.dm_os_buffer_descriptors
WHERE database_id = DB_ID('YourDatabaseName');

-- 查看計劃緩存使用情況
SELECT 
    cp.objtype AS [CacheType],
    OBJECT_NAME(st.objectid, st.dbid) AS [ObjectName],
    cp.usecounts AS [ExecutionCount],
    st.text AS [QueryText],
    cp.size_in_bytes / 1024 AS [SizeInKB]
FROM sys.dm_exec_cached_plans AS cp
CROSS APPLY sys.dm_exec_sql_text(cp.plan_handle) AS st
WHERE cp.cacheobjtype = 'Compiled Plan'
ORDER BY cp.usecounts DESC;

截圖如下:

二、清理緩存

-- 清除緩沖池
DBCC DROPCLEANBUFFERS;

-- 清除計劃緩存
DBCC FREEPROCCACHE;

-- 清除數(shù)據(jù)緩存
CHECKPOINT;
DBCC DROPCLEANBUFFERS;

三、監(jiān)控緩存命中率

-- 緩沖池命中率
SELECT 
    object_name, 
    counter_name, 
    cntr_value
FROM sys.dm_os_performance_counters
WHERE counter_name IN ('Buffer cache hit ratio', 'Buffer cache hit ratio base');

截圖如下:

連接池

一、查看當(dāng)前活動的連接數(shù)

SELECT 
    DB_NAME(dbid) AS DatabaseName,
    COUNT(dbid) AS NumberOfConnections
FROM sys.sysprocesses
WHERE dbid > 0
GROUP BY dbid;

截圖如下:

二、查看當(dāng)前連接的具體信息

SELECT 
    spid,
    ecid,
    status,
    loginame,
    hostname,
    db_name(dbid) AS DatabaseName,
    cmd,
    request_id
FROM sys.sysprocesses;

截圖如下:

三、查看連接池信息

SELECT 
    pool_id,
    min_memory_percent,
    max_memory_percent,
    used_memory_kb,
    target_memory_kb,
    max_memory_kb
FROM sys.dm_resource_governor_resource_pools;

截圖如下:

四、查看每個連接的詳細(xì)信息

SELECT 
    session_id,
    login_time,
    host_name,
    program_name,
    client_interface_name,
    login_name,
    status,
    cpu_time,
    memory_usage,
    logical_reads,
    writes,
    reads
FROM sys.dm_exec_sessions;

截圖如下:

五、查看用戶連接數(shù)

SELECT login_name,
Count(0) user_count
FROM Sys.dm_exec_requests dr WITH(nolock)
RIGHT OUTER JOIN Sys.dm_exec_sessions ds WITH(nolock)
ON dr.session_id = ds.session_id
RIGHT OUTER JOIN Sys.dm_exec_connections dc WITH(nolock)
ON ds.session_id = dc.session_id
WHERE ds.session_id > 50
GROUP BY login_name
ORDER BY user_count DESC

截圖如下:

彩蛋

重啟Mysql不行,反而重啟服務(wù)器才可以,考慮是否應(yīng)用有死鎖,導(dǎo)致應(yīng)用在爭奪資源

如果連接池信息滿了,考慮如下方式重置資源池

ALTER RESOURCE POOL pool_name
WITH (
    MIN_MEMORY_PERCENT = 0,
    MAX_MEMORY_PERCENT = 100
);

重置資源配置調(diào)度:

ALTER RESOURCE GOVERNOR RECONFIGURE;

通過KILL的方式來清空連接:

DECLARE @session_id INT;

DECLARE session_cursor CURSOR FOR
SELECT session_id 
FROM sys.dm_exec_sessions
WHERE session_id != @@SPID AND is_user_process = 1;

OPEN session_cursor;

FETCH NEXT FROM session_cursor INTO @session_id;

WHILE @@FETCH_STATUS = 0
BEGIN
    EXEC('KILL ' + @session_id);
    FETCH NEXT FROM session_cursor INTO @session_id;
END

CLOSE session_cursor;
DEALLOCATE session_cursor;

如果當(dāng)前資源池的內(nèi)存限制太低,可以增加這兩個參數(shù):

ALTER RESOURCE POOL pool_name
WITH (
    MIN_MEMORY_PERCENT = new_min_memory_percent,
    MAX_MEMORY_PERCENT = new_max_memory_percent
);
ALTER RESOURCE GOVERNOR RECONFIGURE;

還可分配更多的資源給高優(yōu)先級的任務(wù):(調(diào)整工作負(fù)載組的配置,以確保高優(yōu)先級任務(wù)獲得更多資源)

ALTER WORKLOAD GROUP group_name
USING pool_name;
ALTER RESOURCE GOVERNOR RECONFIGURE;

最終還需監(jiān)控和優(yōu)化

  • 監(jiān)控資源使用情況:定期監(jiān)控資源池的資源使用情況,確保配置合理
SELECT 
    pool_id,
    min_memory_percent,
    max_memory_percent,
    used_memory_kb,
    target_memory_kb,
    max_memory_kb
FROM sys.dm_resource_governor_resource_pools;
  • 優(yōu)化查詢和索引:優(yōu)化查詢和索引,減少資源消耗
  • 定期維護(hù)和清理:定期維護(hù)數(shù)據(jù)庫,清理不必要的數(shù)據(jù)和索引,釋放資源

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

大方县| 威海市| 大荔县| 苍溪县| 章丘市| 行唐县| 镇赉县| 萨迦县| 六安市| 静宁县| 永德县| 富锦市| 栾川县| 龙南县| 荣昌县| 怀安县| 砀山县| 镇江市| 辽阳市| 扶沟县| 惠来县| 商都县| 尖扎县| 天全县| 高淳县| 望城县| 涿鹿县| 贡觉县| 顺平县| 仲巴县| 民和| 永春县| 儋州市| 杨浦区| 诸暨市| 武宣县| 甘孜县| 桦甸市| 来凤县| 旅游| 南阳市|