获取大型静态表的数据

时间:2011-03-31 20:27:49

标签: .net sql-server

我有3个静态数据表,记录超过10万条。此表格应仅在三个月内刷新一次。问题在于,第一次从数据库中获取此数据会使我的应用程序出现显着的性能延迟。

我需要使用哪种技术来优化在我的应用中获取数据?

EDITED:也许最好将它存储在XML(例如其他数据结构)本地,并定期从db刷新它们?

3 个答案:

答案 0 :(得分:1)

如果必须从数据库服务器检索数据,并且很少这样做,那么检索的速度肯定会慢一些,因为数据库服务器不会保持表的缓存,因为它很少使用。这很好,因为它为其他表释放了缓存空间,从而提高了整体性能。

为您很少刷新的静态数据寻找其他存储机制可能是值得的。你能从本地文件中读取它吗?你能在磁盘上保留一个序列化结构并将其读入吗?这可能比从数据库中检索它更快。

答案 1 :(得分:1)

将DBCC PINTABLE视为一种可能性。

答案 2 :(得分:0)

想法不好,但可行: 在检索数据之前,请对数据库进行一些调用。一些SELECT会将您有价值的数据“放在首位”。在实际需要之前10-30-60分钟执行此操作。根据数据准备的执行时间选择时间间隔。

并且,不要忘记根据需要定义任意数量的索引。