好吧,我是这里唯一的 IT 人员,所有这些都是由前一个人设置的。我对数据库几乎一无所知。
我们有一些软件叫做E2跟踪我们所有的库存。我们还有中心点工资单用于我们的工资单。
每当 E2 开始变得迟缓时,我们就会重启服务器 (2k3)。我们会这样做
- 让每个人都离开 E2 以及服务器上打开的所有其他内容。
- 重新启动服务器并等待它重新显示。
有一天,我发现我可以进入服务器上的 SQL 服务器服务管理器,点击停止,然后在 AMCO\RWS 服务器上启动,这样与完全重启的效果相同,但只需 30 秒,而不是 15 分钟以上。此外,我们只需要让每个人都退出 E2,而不是所有用户。
但现在我仔细考虑了一下,我不确定我在这里做的是否正确。我正在重新启动 E2 的 AMCO/RWS 服务器,但我突然想到这可能是工资单软件的数据库,因为我们的工资单是由 RedWing Software 完成的。但是,如果我停止它,那么 E2 就无法再连接,所以它们似乎有某种关联。我真的不知道是否有人登录了工资单,因为那个人通过远程桌面在家工作。
答案1
答案2
这更像是一种预感,但考虑到它是一个较旧的 ms sql 服务器...并且你可以在重新启动 sql 服务器实例时消除缓慢现象,也许问题是临时表的使用变得太大和/或没有适当的索引?
如果 SQL 服务重启后仍然出现缓慢现象,我会说这可能只是基本的 SQL 瓶颈(通常涉及优化所使用的查询、索引和表)。我也不太清楚 MS SQL 2000 在恢复模式和事务日志方面的工作方式,但我猜想应该是类似的。如果数据库处于“完整”恢复模式,事务日志就会累积,除非您有备份和存档这些日志的维护计划。这可能会减少可用于形成临时表的磁盘空间。
至于查看谁登录了,我相信您可以使用 SQL 管理工作室(在 SQL 2000 中可能称为某种形式的查询编辑器)并运行命令“sp_who”或“sp_who2”,它将显示 SQL 当前正在使用的连接...通常它还包括连接的计算机的主机名。