Moss文件操作速度慢的问题解决记录
用户反馈在进行文档上传及添加水印操作的时候速度非常慢.
开始进行问题排查
1.检查服务器资源占用情况 web app 数据库 cpu,内存,磁盘,网络都没有异常情况.
2.检查数据库资源使用. 发现锁的数量非常多.大约在 70-400W个. 大多数都是alldocs 的 key锁. 根据sessionid进行分组排查.发现变动较快. 大约六七个session每个都持有几十万个锁. 关联查询出具体sql的text查看发现.发现执行上传过程会调proc_GetLinkInfoSingleDocInternal存储过程,非常耗时.
3.检查程序发现涉及到文档更新操作的比较慢.
4.进行文档上传操作.发现部分慢部分快. 慢的什么时候上传都慢,快的什么时候都快.总结发现慢的文档内容中有超链接.
5.开profile跟踪执行的sql语句.发现Moss更新文档会取出超链接. 执行proc_GetLinkInfoSingleDocInternal 的查询
分析动态执行计划.发现缺少索引.
增加下面的索引之后上传包含索引的word文档也恢复正常
USE [Wss_Content_80_Contract]
GO
CREATE NONCLUSTERED INDEX [<Name of Missing Index, sysname,>]
ON [dbo].[AllDocs] ([SiteId],[DirName],[LeafName],[DeleteTransactionId])
INCLUDE ([Type])
GO
未解决的悬案.
1.微软为什么要从word文档里面获取连接.
2.文档中如果有10个连接.只获取了后9个连接,为什么不获取第一个连接.
3.之前是不获取连接的. 是否因为开Fast全文检索造成的问题.