我意识到这个问题很模糊,这取决于硬件和我们的需求。
我们目前有 500 万行数据,总共有 5GB 的数据,我们希望使用全文索引对其进行索引。我们的数据增长非常快,假设几年后它会接近 10 亿行和 1 TB 数据并不是没有道理的。
该索引可供网站用户搜索,他们希望在一两秒钟内得到响应。
假设该数据集可使用 SQL Server 2012 全文索引编制索引是否合理?对如此大量的数据进行全文索引是否常见?有没有关于这个主题的好读物,例如来自其他人的经验?
我们使用的是 SQL Azure Premium P1,它带有 8GB 内存和 150 IOPS。几个小时以来,我们一直看到 SQL 查询超时(即使是相当简单的查询也需要时间)。
在 SQL Azure 的日志中,我们看到我们的物理读取 IOPS 在几分钟内从稳定的 5 IOPS 增加到大约 130,但我们在依赖 SQL Azure 的系统中的实际生产并没有增加。
在它跳到 130 IOPS 的那一刻,日志显示数据库内存使用量从非常稳定的 4.8GB 下降到 1GB 左右
我认为如果内存使用量下降,物理读取量增加是有道理的。
我查看了在服务器上执行的查询,但除了较慢的响应之外,没有发现任何异常。
我的问题是,即使有足够的内存可用,SQL Azure(或与此相关的 SQL 服务器)是否会从内存中删除内容并支持磁盘 IO,是否有任何原因。