我有一个日志表,将从几个网络应用程序接收插入.我不会做任何搜索/排序/查询这些数据.我将把数据拉出到另一个数据库来运行报告.初始表格严格用于接收日志消息.
有没有办法确保Web应用程序不必等待这些插入?例如,我知道添加很多索引会减慢插入,所以我不会.那里还有什么?我不应该添加主键吗? (每个晚上,表将被抽到一个报表数据库,这将有很多的键/索引)
解决方法
如果性能是关键,则可能不想将此数据写入数据库.我认为大多数事情都将处理一个数据库写作作为一个往返,但听起来你不想等待返回的确认消息.检查是否像S.Lott所说,只要在一个简单的文本文件中附加一行即可.
如果数据库写入速度更快(或者由于安全性或其他业务/操作原因而需要),那么我将不会在表上放置任何索引,而且包含一个主键.如果它不会用于读取或更新,并且如果不需要关系完整性,那么您不需要在此表上使用PK.
推荐明显:作为夜间报告的一部分,清除表中的内容.另外,不要重置数据库文件大小(ye olde shrink database命令);经过一周以上的定期使用,数据库文件应该与他们需要的一样大,您不必担心文件增长性能受到打击.