當前位置:首頁 » 編程語言 » sqlserver2008內存分配
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sqlserver2008內存分配

發布時間: 2022-03-07 15:50:44

『壹』 sql server 2008 r2 啟用awe後 內存的管理

會自動釋放的。內存緩存一些查詢,tempdb,存儲等。不是把所有數據放到內存裡面。你才10G,那100G,1T的怎麼辦。這涉及SQL內存管理方面。我也是粗淺的了解了一點。

『貳』 SQLServer中能手動給使用的表分配內存嗎如果可以,如何分配

不能,SQL Server的內存分配是SQL引擎自動分配的,我們只能更改最大值最小值。

在伺服器屬性里改。

SQL Server佔用的內存主要由三部分組成:

數據緩存(Data Buffer)、執行緩存(Procere Cache)、以及SQL Server引擎程序。
其中引擎程序佔用的緩存比較固定,也是必須佔用的一部分。除此之外,執行緩存是執行的語句解析後存儲的地方,而數據緩存則是查詢結果等緩存的地方。這兩個部分是動態調整的,都不是用戶可以支配的。

『叄』 如何設置SQL伺服器的內存分配

步驟如下:
點擊Start > Run
鍵入WINMSD。
選擇Memory選項。
記錄下來計算的一個內存值物理存儲器(k) SQL資料庫的。
初始化SQL企業管理器。
選擇為存儲器分配將配置的資料庫。
用滑鼠右鍵單擊在資料庫並且選擇配置。Server Configuration Options窗口打開。
選擇Configuration選項。
移下來對內存行。有三列:「最低、最大數量、運行和當前內存分配」。

『肆』 sql server2008r2 內存分配

因為SQLserver版本是32位的,你看下win2008是不是64位?

1、安裝64位的操作系統,安裝64位MSSQL。這方法比較符合硬體,但是要重裝軟體。


或者

2、打開"SQL Server Management Studio"點服務屬性,開啟「AWE」,設立最大內存30*1024(保留2G給操作系統用),選中「配置值」。然後重啟服務


註:看下操作系統識別出來多內存,如果小於4G,則要為操作系統開啟「/PAE」


http://blog.csdn.net/yjg428/article/details/7030353


http://wenku..com/link?url=IPyL4oW-S1BT--3C826P7QtMDnbQlBuQInTO

『伍』 sql 2008 R2 怎樣 釋放內存

請限制sql server 可使用的最大內存數
目前發現有部分專享自由型主機由於sqlserver資料庫佔用的內存過大,造成伺服器可用內存資源過少,導致伺服器運行緩慢甚至宕機。您可以通過以下方法限制sqlserver佔用的最大內存,從而保證伺服器有足夠的內存可以使用:
1、登錄伺服器->打開企業管理器
2、打開SQL Server組
3、右鍵點擊 (local)本地實例->選擇「屬性」
4、點擊「內存」項,在其中「最大值」項中可以設定當前sqlserver可佔用的最大內存

『陸』 請教關於Sql Server2008R2是如何對物理內存分配使用的

沒什麼好怕的, 如果你的使用量太大, sqlserver會佔用所有內存, 這是正常現象。
你唯一需要注意的是:
1. SqlServer伺服器的cpu高不高?(看任務管理器)
2. 慢的SQL有哪些?
下面的sql可以幫你, 應該直接在伺服器上查詢:

SQL code?

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].Proc_DBA_GetSlowSQL') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].Proc_DBA_GetSlowSQL
GO
-- =============================================
-- Author: yenange
-- Create date: 2015-12-17
-- Description: 取得最近執行緩慢的SQL語句
-- =============================================
CREATE PROCEDURE dbo.Proc_DBA_GetSlowSQL
@topNum INT = 50 --取前多少條記錄
,@lastExecutionTime DATETIME = NULL --最後執行時間, 默認為NULL. 為 NULL 則忽略此條件; 不為NULL 則取大於此參數之後執行的
,@excludeNight BIT=1 --是否 排除晚上的信息? 默認=1 排除。選擇是=1,後面兩參數才有意義
,@nightBegin CHAR(5)='22:00' --"晚上"開始時間點, 默認 22:00
,@nightEnd CHAR(5)='06:00' --"晚上"結束時間點, 默認 06:30
,@containSQL NVARCHAR(300)=NULL --語句中包含的SQL. 默認為NULL. 為NULL則忽略此條件; 不為NULL則取包含此參數的記錄
AS
BEGIN
SET NOCOUNT ON
DECLARE @nightBegin_num INT
DECLARE @nightEnd_num INT
SET @nightBegin_num=CAST( replace(@nightBegin,':','') AS INT)
SET @nightEnd_num=CAST( replace(@nightEnd,':','') AS INT)

SET ROWCOUNT @topNum
SELECT
st.text AS SQL_Full --父級完整語句
,SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
((CASE statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offset END
- qs.statement_start_offset)/2) + 1) as SQL_Part --統計對應的部分語句
, CAST( ((qs.total_elapsed_time / 1000000.0)/qs.execution_count) AS DECIMAL(28,2) ) AS [平均消耗秒數]
, CAST(qs.last_elapsed_time / 1000000.0 AS DECIMAL(28, 2)) AS [最後完成消耗秒數]
, qs.last_execution_time AS [最後執行時間]
, CAST(qs.min_elapsed_time / 1000000.0 AS DECIMAL(28, 2)) AS [最小消耗秒數]
, CAST(qs.max_elapsed_time / 1000000.0 AS DECIMAL(28, 2)) AS [最大消耗秒數]
, CAST(qs.total_elapsed_time / 1000000.0 AS DECIMAL(28, 2)) AS [總消耗秒數]
, (qs.execution_count) AS [總執行次數]
, creation_time AS [編譯計劃的時間]
, CAST(qs.last_worker_time / 1000000.0 AS DECIMAL(28, 2)) AS [最後完成佔用CPU秒數]
, sql_handle,statement_start_offset,statement_end_offset
,plan_generation_num,plan_handle,creation_time
,last_execution_time,execution_count
,total_worker_time,last_worker_time,min_worker_time,max_worker_time
,total_physical_reads,last_physical_reads,min_physical_reads,max_physical_reads,total_logical_writes,last_logical_writes,min_logical_writes,max_logical_writes,total_logical_reads,last_logical_reads,min_logical_reads,max_logical_reads
,total_clr_time,last_clr_time,min_clr_time,max_clr_time
from sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st
WHERE
--1. 最後執行時間
(@lastExecutionTime IS NULL OR qs.last_execution_time>=@lastExecutionTime)
--2. 包含 SQL 條件
AND
(@containSQL IS NULL OR st.[text] LIKE '%'+@containSQL+'%')
AND
--3. 是否排除晚上
(
@excludeNight=0
OR
(
--2.1 開始大於結束 22:00->6:30 [ x >=6:30(end) and x<22:00(begin) ]
@nightBegin_num>@nightEnd_num AND
(
CAST( replace(CONVERT(varchar(5),last_execution_time,108),':','') AS INT)>=@nightEnd_num
AND
CAST( replace(CONVERT(varchar(5),last_execution_time,108),':','') AS INT)<@nightBegin_num
)
)
OR
(
--2.2 開始小於結束 1:00->6:30 [ x>=0:00 and x<1:00 or x>=6:30 and x<24:00 ]
@nightBegin_num<@nightEnd_num AND
(
(
CAST( replace(CONVERT(varchar(5),last_execution_time,108),':','') AS INT)>=0
AND
CAST( replace(CONVERT(varchar(5),last_execution_time,108),':','') AS INT)<@nightBegin_num
)
OR
(
CAST( replace(CONVERT(varchar(5),last_execution_time,108),':','') AS INT)>=@nightEnd_num
AND
CAST( replace(CONVERT(varchar(5),last_execution_time,108),':','') AS INT)<2400
)
)
)
)
ORDER BY qs.last_elapsed_time DESC

SET NOCOUNT OFF
SET ROWCOUNT 0
END
GO
EXEC sys.sp_addextendedproperty
@name=N'Version', @value=N'1.1' ,
@level0type=N'SCHEMA',@level0name=N'dbo',
@level1type=N'PROCEDURE',@level1name=N'Proc_DBA_GetSlowSQL'

『柒』 新裝SQL server 2008 快速占滿大量內存 問題蹊蹺 高分求助

內存能佔用到多少?一般新安裝什麼都沒操作的話,是不會佔用什麼內存的
建議用profiler監控一下是否有什麼內部進程或程序在訪問

-------------------
這個嘛,R2有sp2補丁,可以打一下看看,有些內部問題確實是由於系統自身的原因的

-------------------
伺服器這里的配置確實不太了解,學習了呵呵

『捌』 怎麼設置sql2008資料庫最大伺服器內存

1、1.選擇「開始 > 所有程序 > Microsoft SQL Server 2008 R2 > SQL Server Management Studio」。系統顯示「連接到伺服器」界面。
2、2.輸入各項數據,單擊連接
3、3.系統顯示「對象資源管理器」界面
4、4.上圖單擊右鍵,在彈出的快捷菜單中選擇「屬性」。
5、5.在左側導航欄中選擇「內存」,將右側「最大伺服器內存」的值設置為物理內存的60%,本例以8G內存為例
6、6.最後單擊確定,設置完成

『玖』 如何解決sql server 2008佔用6個多G的內存

你說的是資料庫文件吧,主要是日誌太大了,收縮下資料庫日誌就可以了;
網路搜索「sql收縮日誌」的代碼,放到查詢分析器裡面執行下就可以了;