如何每1分钟更新一次SQL Server数据库?

时间:2011-01-05 06:43:41

标签: asp.net sql sql-server asp.net-mvc

我有一个SQL Server数据库,其中包含股票市场报价和其他相关数据。

此数据库需要定期更新,例如1分钟。

我的问题是:

  

如何每1分钟获得一次股票报价并将其更新到数据库?

我非常感谢你的帮助。

谢谢!

2 个答案:

答案 0 :(得分:4)

你知道,你认真地从错误的方面提出问题。就像“我有一辆车,梅赛德斯,Coupe - 我怎样才能找到从A到B的最佳道路”。完全与汽车无关。

与你的问题相同 - 这不是一个sql甚至是一个asp.net问题。该解决方案独立于所使用的sql server和您的Web技术。你的主要问题是:

  

如何每12分钟获得一次股票报价并将其更新到数据库?

我们走了。我假设你(a)谈论美国股票和(b)意味着所有这些,而不是一个满满的.. 1分钟太小的间隔使扫描像yahoo.com这样的东西可行 - 这里的主要问题是有成千上万的股票(实际上更多的是成千上万),你不想去雅虎每分钟报废数千页。

同时,最终零售用户数据Feed提供商将无法运作。它们一次支持X符号,x通常位于低百区域,有时可升级到500左右。

如果您每分钟都需要股票数据,根据所有美国股票,那么这在技术上与“实时价格”相同,最终会花钱。在adition中,您需要一个我知道的商业高端数据源...一个。抱歉。成本将接近或满四位数,没有(!)出版权。

那就是NxCore--他们的系统有一个数据报价,可以实时提供美国股票(所有交易所),完整的所有修正信息等。本机和C#包装API,这样你就可以获取实时数据,更新你的内存中的当前定价并每分钟将它们写入sql server。最好不要来自asp.net(baaaaad选择的东西,应该不间断地运行24/7,除非你做大量的设置更改等),但从安装的Windows服务。占用一些带宽 - 没有真正的想法多少(我从他们那里得到4次交易,但没有股票,只有cme集团期货,CME,CBOT,NYMEX和COMEX)。

请注意,使用此设置,您也可以更快,但如果您完全实时,则需要一台严肃的服务器。我们每天谈论十亿次更新......  最终用户sql server设置(即小ram和几个慢盘)不会工作。 太贵了?以更低的价格提供大量数据,但它们不会像“所有这些”那样给你“股票”,只是“选择”。

如果您对不是实时数据感到满意 - 即在当天结束时提取内容,eoddata.com提供了不错的报价。你也可以通过一个asp.net页面来解决问题,但是再次....你不会在白天获得数据,只是 - 好 - 关闭后。最小粒度为1分钟。再次公开权利再也没有 - 但可能你可以和他们谈谈。

答案 1 :(得分:1)

这不是特定于SQL Server的;一个典型的解决方案是运行一个定期轮询外部源(Web服务等)的进程,并使用此信息更新数据库。您可以将其实现为一个简单的命令行程序,该程序每分钟从任务调度程序执行一次,或者您可以将其设置为大部分时间休眠的Windows服务,并且每分钟只唤醒一次以进行处理。一旦你有了,就像往常一样写入数据库。