加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 如何在Sql Server中存储’n’天的Web服务器日志?

发布时间:2020-12-12 06:14:15 所属栏目:MsSql教程 来源:网络整理
导读:为了更快地进行报告和性能分析,我们希望将Web服务器日志插入到Sql Server中.这将使我们能够近乎实时地查看流量模式,问题和减速. 我们有一个守护进程,它监听来自负载均衡器的请求/响应事件以及批量插入到数据库中. 但是,我们每天获得大约1 GB的日志,我们只需要
为了更快地进行报告和性能分析,我们希望将Web服务器日志插入到Sql Server中.这将使我们能够近乎实时地查看流量模式,问题和减速.

我们有一个守护进程,它监听来自负载均衡器的请求/响应事件以及批量插入到数据库中.

但是,我们每天获得大约1 GB的日志,我们只需要保持一周左右(至少以这种原始形式).

存储此数据的最佳方法是什么,以及删除旧条目的最佳方法是什么?

我们已经讨论过将每天的数据存储在自己的表格中,例如Log_2011_04_07将包含当天的所有条目,然后删除最旧的表.可以创建视图以跨越所有日期表以便于查询.可行吗?

解决方法

你应该考虑分区.

http://technet.microsoft.com/en-us/library/dd578580%28SQL.100%29.aspx

关于分区的一个很酷的事情是你只有一个表名(而不是多表方法),所以你的insert语句保持静态.它适用于每个应用程序 – 它对查询完全透明.如果您最终得到每个表的不同索引或统计信息,则不必担心会发生什么.

您创建一个分区函数,决定如何将表拆分为场景后面的多个表.该函数只能接受一个输入参数/字段,在您的情况下,它将是一个日期字段.该功能可以按日期,周,月或年分解表 – 在您的情况下,您需要日期,24小时.

然后构建一个SQL Server代理作业,该作业使用T-SQL每天交换最后一个分区.删除成为元数据操作,而且速度非常快.交换分区,然后删除旧分区.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读