WEB开发网
开发学院数据库MSSQL Server SQL Server 2005性能排错(4) 阅读

SQL Server 2005性能排错(4)

 2007-05-15 09:28:31 来源:WEB开发网   
核心提示: session_id request_idtask_alloc task_dealloc-52 0 1024 1024sql_handlestatement_start_offset--0x02000000D490961BDD2A8BE3B0FB81ED67655EFEEB360172 3
session_id request_id task_alloc      task_dealloc 
---------------------------------------------------------   
52     0      1024         1024      
sql_handle    statement_start_offset
----------------------------------------------------------
0x02000000D490961BDD2A8BE3B0FB81ED67655EFEEB360172  356 
statement_end_offset plan_handle   
---------------------------------         
-1        
0x06000500D490961BA8C19503000000000000000000000000

你可以利用如下语句通过sql_handle和plan_handle来得到SQL语句和查询计划:

select text from sys.dm_exec_sql_text(@sql_handle)
select * from sys.dm_exec_query_plan(@plan_handle)

注意当你访问查询计划时,查询计划可能已经不在缓存中了。为保证查询计划可以使用,你应该需要经常为查询计划缓存保存否则该计划会被清除,同时应该将结果尽可能保存在表中,这样用于以后的查询。

当SQL Server 重新启动,tempdb大小将初始化到配置的大小,并基于需求增长。这可以导致tempdb的分裂,这样会招致过多的开销,包括在数据库自动增长时分配新的扩展的阻塞。这能影响你的工作负载性能。建议你重新分配tempdb到一个适当的大小。

过多的DLL和分配操作

在tempdb中2个原因可以导致这个结果。

◆创建和删除大量的临时表和标变量导致在元数据上的争夺。在SQL Server 2005中,本地的临时表和标变量被缓存来最小化元数据的争用。然而只有下列条件满足时,表才会被缓存。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:SQL Server 性能

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接