服务器 (SQL Server 2008) 的 tempdb 每月数次增加到 500GB+。是否可以找出导致此问题的 SQL 语句?问题通常不是由create table #temp...; insert into #temp...或select ... into #temp...复杂的连接引起的。
某些 tempdb 文件的初始大小每次也会自动设置为更大的值。如何预防?
有时缓存的计划会阻止调整/缩小文件的大小。如何找到哪一个持有tempdb?
我在 SQL Server 2008 R2 中创建了一个扩展事件会话。会话运行,并在事件发生时收集事件,正如您所期望的那样。
如果我在事件相对较少的情况下切碎 xml,性能是可以接受的。当我有数千个事件时,需要永远分解 xml。
我知道我做错了什么,我只是没有足够的关于 XML 引擎内部的知识来理解什么。
这是我的扩展事件会话的定义:
IF EXISTS
(
SELECT 1
FROM sys.server_event_sessions dxs
WHERE dxs.name = 'queries'
)
BEGIN
IF EXISTS (
SELECT 1
FROM sys.dm_xe_sessions dxs
WHERE dxs.name = 'queries'
)
BEGIN
ALTER EVENT SESSION queries ON SERVER STATE = STOP;
END
DROP EVENT SESSION queries ON SERVER;
END
CREATE EVENT SESSION queries ON SERVER
ADD EVENT sqlserver.sql_statement_starting
(
ACTION
(
package0.collect_system_time
--, package0.event_sequence
, sqlserver.client_app_name
, sqlserver.client_hostname
--, sqlserver.database_name
, …Run Code Online (Sandbox Code Playgroud) 我们确实为 SQL Server 2008 r2 express 制定了一些维护计划。如果任何表的页数超过 50 并且平均碎片超过 20,我们每个月都会对数据库进行碎片整理。
如果数据库日志大小>2MB,则恢复模式为简单,收缩,恢复模式重新设置为FULL。如果 Page_count>50 且 avg_fragmentation_in_percent > 30,则索引为 REBUILD。
如果 Page_count>50 且 avg_fragmentation_in_percent > 5 且 <30,则索引为 REORGANIZE。
这就是我们目前正在做的事情。但是我们发现自增长事件是资源密集型的,不应重复发生。现在,对于所有数据库,mdf 文件的自动增长设置为 MB,ldf 文件设置为 10%,这是创建新数据库时的默认值。我们计划根据每天变大的数据库数量来增加数据库的自动增长值。但是我想知道有多少自动增长事件对数据库来说是理想的。我应该设置自动增长以便它每天、每周或每月等只发生一次吗?所以请帮助我为我的数据库设置自动增长值。还有另一个问题,如果我每月对数据库进行碎片整理,那么它就会缩小。因此,在此之后,对于所有我确实收缩过的数据库,在写入新数据时都会发生一次自动增长。所以会有很多自动增长事件。那么会不会有问题呢?请告诉我一个解决方案。
我有一个大小约为 200G 的数据库,并且每天都会发生许多插入操作(每天增长大约 3 到 4 GB),但自动增长设置设置为 1 MB。
我认为这是一个问题,我认为如果我将其设置为 1GB 会提高性能和能力,对吗?
我认为 1MB 自动增长数据库将总是忙于分配新空间,是吗?关于提高性能的最佳实用方法有什么建议吗?
谢谢大家
我有一个大约有 1100 万行的表,定义为:
CREATE TABLE [sko].[stage_närvaro](
[datum_fakta] [datetime] NULL,
[person_id] nvarchar NULL,
[läsår_fakta] nvarchar NULL,
[termin_fakta] nvarchar NULL,
[period_fakta] nvarchar NULL,
[vecka_fakta] nvarchar NULL,
[veckodag_fakta] nvarchar NULL,
[ämne_id] nvarchar NULL,
[ämne] nvarchar NULL,
[frånvaro_min] [float] NULL,
[närvaro_min] [float] NULL,
[frånvaroorsak_id] nvarchar NULL,
[frånvaroorsak] nvarchar NULL,
[beskrivning] nvarchar NULL,
[personal_id] nvarchar NULL,
[försystem] nvarchar NULL
)
Run Code Online (Sandbox Code Playgroud)
使用以下非聚集索引:
CREATE NONCLUSTERED INDEX [stage_skola_närvaro_ix1] ON [sko].[stage_närvaro]
(
[person_id] ASC,
[termin_fakta] ASC,
[läsår_fakta] ASC
)
Run Code Online (Sandbox Code Playgroud)
当我运行以下删除查询时,至少需要 2 个多小时才能完成。
DELETE sko.stage_närvaro
FROM sko.stage_närvaro e
WHERE försystem …Run Code Online (Sandbox Code Playgroud)