我们可以从aspstatetempsessions表中删除旧记录吗?

时间:2013-01-30 04:50:48

标签: asp.net sql-server

最近我在我的项目中创建了Session State,代码在

下面
<sessionState mode="SQLServer" allowCustomSqlDatabase="true" 
    sqlConnectionString="Data Source=ADMIN-9F8C57749\SQLEXPRESS;Initial 
    Catalog=kecbliss;Integrated Security=True" timeout="60" 
    stateNetworkTimeout="60">
</sessionState>

问题是日复一日aspstatetempsessions table变得越来越大 所以我的问题是

  1. 我可以删除aspstatetempsessions的前几天记录吗?
  2. 如何在不影响项目的情况下实现这一目标?
  3. 项目详情

       前端ASP.NET
       后端MS SQL Server

1 个答案:

答案 0 :(得分:4)

要解决此问题:

<强>步骤1:

确保SQL代理服务正在运行,并检查是否存在名为 SSPdatabaseName _Job_DeleteExpiredSessions的SQL代理作业并成功运行。

如果启动了SQL代理服务并且缺少SQL代理作业,请继续执行步骤2

<强>步骤2:

在SSP数据库上手动运行DeleteExpiredSessions存储过程。

  • 使用Microsoft SSMS连接到数据库服务器 - &gt;客户端 新查询。
  • 确保在新查询中选择了SSP数据库 窗户。
  • 输入“EXEC DeleteExpiredSessions”并执行查询。

此命令将清除ASPStateTempSessions表,而不删除任何活动连接。

注意:根据ASPStateTempSessions表的大小,建议在SharePoint / SQL服务器上的非高峰时间运行此命令。

要注册将来自动运行的作业,请按照以下步骤操作:

  • 确保SQL代理已启用(应将其设置为自动启动 Windows服务)
  • 获取包含ASPStateTempSessions的SSP数据库名称 表缺少关联的SQL代理作业。
  • 在WFE或任何应用程序服务器上执行以下命令 与服务器场:

从命令提示符转到ASP .Net文件夹%WINDIR%\ Microsoft.NET \ Framework \ v2.0.50727 \

aspnet_regsql.exe -sqlexportonly exportfilepath.sql -ssadd -sstype c -d SSP db name 
  • 在记事本中打开exportfilepath.sql文件,请务必选择 以下行之间的文字:

/ *创建作业以删除过期的会话* /

/ <强> * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * *** /

  • 复制上面复制的测试并在SQL框上执行代码 托管SSP数据库。

现在您应该找到一个SQL代理作业。

拉​​吉

资料来源:support.microsoft.com/kb/970788