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

前端之家收集整理的这篇文章主要介绍了sql-server – 如何在Sql Server中存储’n’天的Web服务器日志?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为了更快地进行报告和性能分析,我们希望将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每天交换最后一个分区.删除成为元数据操作,而且速度非常快.交换分区,然后删除旧分区.

猜你在找的MsSQL相关文章