Mic*_*hel 25 sql sql-server sql-server-2008
我被要求为新系统做一些性能测试.它只是与一些客户端一起运行,但随着它们的增长,这些是我为我的测试工作的数字:
200个客户端,4年的数据,以及每5分钟的数据变化.所以每个客户每5分钟就有1条记录.这意味着每个客户每年365*24*12 = 105.000条记录,这意味着我的测试有80万条记录.它有一个FK到另一个表,一个PK(uniqueidentifier)和一个clientID上的索引.
这是SqlServer笑的事情,因为它并没有吓到他,这对于一个四核8 GB机器来说太过分了,这是在边缘,还是......
有没有人对这些数字有任何经验?
小智 28
字段PK应该尽可能小,而不是随机的 - GUID在这里很糟糕.主要问题是:
这有多糟糕?我知道在某些情况下你会失去80%的速度.
否则 - 没问题.我有一个超过8亿行的表,并且那里的东西非常快;)当然,你需要有不错的查询,体面的索引,显然不能在单个5400 RPM绿色硬盘上运行才能有效 - 但是IO而不是愚蠢的查询和一些不错的索引,SQL不会在几十亿行上批量生成.
因此,虽然"它取决于",但通用答案是大表不是问题......除非你做MASS删除.删除一半的表将是一个巨大的事务,这就是为什么分区很适合像会计这样的东西 - 每年一个分区表意味着我可以摆脱一年没有DELETE语句的数据;)
Nic*_*ver 10
该软件可以处理它,你的服务器可以吗?嗯,这取决于.
你刚存档吗?肯定会得到一千亿行,它并不关心,性能问题会在你查询数据时出现.它获得的越大,就总存储和对该数据的操作(删除,回滚段等)而言,您需要的空间越多,优选地在内存中,但如果不是,则在快速tempdb驱动器上.
SQL服务器比大型数据集上的处理器更重要(尽管处理器肯定会影响它所花费的时间,而不是它可以处理的查询/数据的阈值)是内存和空间(HD和RAM都会溢出到TempDB)对于大型运营而言,这就是在容量方面.为了提高性能,您需要一起使用磁盘IO,内存和处理器电源.
简短的回答可以把它处理它是的,只要你有足够的空间.它处理得足够快吗?这取决于您运行的查询类型以及性能的重要性.
最后一点,不要忘记在这里看看有关优化大表的其他问题.
SQL Server可以毫不费力地存储这么多记录.
如果您已正确设计索引,并且数据库已正确规范化,则访问任意数量的记录绝对没有问题.通常情况下,当数据库中没有信息时,人们会在早期做出糟糕的设计决策,而你永远不会知道它,因为对于小"n"来说,一切都很快.
因此,虽然我会说SQL Server可以处理您正在做的事情,但我也会说现在是时候坐下来看看您的查询如何使用SQL Server Profiler 执行.一切都还快吗?您是否在频繁查询中看到过多的扫描或散列,这会导致性能下降?如果是这样,现在是分析和解决这些问题的时候了.
另外,人们真的喜欢根据行数和列数来考虑大小限制.尝试更进一步讨论字节,因为最终,字节是报告查询中扫描的内容,字节是存储到磁盘的内容.
真的太多了.我负责一个拥有200万注册用户的网站.
我们的一些表有超过1亿条记录,我们可以通过400万每日页面浏览量获得出色的性能,但我必须承认,使用良好的架构进行缓存是事情不会变得难看的主要原因.
| 归档时间: |
|
| 查看次数: |
32291 次 |
| 最近记录: |