我有一个带有表MonitoringRecords
的数据库,我正在使用Entity Framework插入数据。
问题在于我现在在此表中有大约300,000条记录。
现在SQL-server CPU利用率约为98%,RAM利用率为3.6 GB。
我运行了我在此处找到的脚本:SQL Server 2008 High CPU usage
并发现将数据插入表MonitoringRecords
,正在耗尽所有CPU。
所以我找了一个解决方案,然后找到了Table partitioning。
http://technet.microsoft.com/en-us/library/ms190787.aspx
我希望按照日期对我的表进行分区。
关于如何解决这个问题的其他任何提示我都有?
答案 0 :(得分:1)
如果对数据库文件进行分区,则不应影响任何代码。
它可能会稍微改善性能,但听起来可能还有其他因素导致您的问题。
关键是找出导致cpu使用量增加的原因 - 是否在运行特定查询时发生 - 插入数据时
可能需要对表应用一些索引来改进查询。
此外,如果实体框架查询很复杂,它们通常不是检索数据的最有效方法,因此您可能希望插入存储过程或其他内容。