sql-server - 优化 SQL Azure 中股票数据的存储

标签 sql-server azure-sql-database

我想将历史股票价格数据存储在 SQL Azure 数据库的表中。 我每 15 分钟会得到大约 100000 个股票价格,其中一些可能会也可能不会改变其值(value)。所以我每天需要存储大约(5000 * 32(8小时* 4次)= 160000)160000条记录。

目前,权益表的结构如下,大约有 20 列。

Equity table
---------------
ID INT PK,
Name Varchar(20),
Value Money,
Currency Varchar(10),
.......

我想要存储历史价格的新表(HistoricalPrices)包含以下结构。

HistoricalPrices
-------------------
ID INT PK,
EquityID INT FK,
[Date] DateTime,
Value Money

如果我每天存储这 160000 条记录,一个月后我的表将获得大约 500 万条记录。

我的问题是,这个表将如何处理数据,我是否会遇到任何性能问题,是否有其他方法来维护这些数据,以及我是否需要对表结构进行任何更改等等?

最佳答案

通过适当的索引和集群,适当的选择性查询的性能不应该成为问题。传统的操作问题(例如备份、重新索引作业和限制返回的数据量)需要考虑,尽管这不会是 Azure 的问题。

请注意,Azure DB 大小限制可能会迫使您在某个时刻进行水平分区(分片)( http://blogs.msdn.com/b/sqlazure/archive/2010/06/24/10029719.aspx )(Azure 不支持表分区。)

http://msdn.microsoft.com/en-us/library/ms345146(v=sql.90).aspx

还要考虑的是 32 位 INT PK 的溢出 - 尽管按照目前的速度,您的值(value)超过 50 年,但如果您跟踪频率增加(例如更多交易所或更多股票),您将需要考虑 64 位 INT。

关于sql-server - 优化 SQL Azure 中股票数据的存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11073371/

相关文章:

sql-server - SQL Server : How to get the top 'N' max occurrences from each group

sql-server - 将数千行数据插入 Azure SQL DB 的最高效方法?

c# - 如何修复 Azure Web 应用程序上的 ASP.NET MVC 中的缓慢加载操作

azure - Azure 网站上的 MSMQ

sql-server - SQL Server 全文的自定义断字器

sql - 如何在 SQL Server 中使用 Group By 获取运行小计

sql - 查询执行计划: missing index

sql-server - 如何编辑存储过程?

azure - 发布到 Azure 时出错

sql - 使用 CONTAINS 进行全文搜索非常慢