我想将 SQL 插入排序到表中,以通过尽可能避免碎片来优化页面使用。我将运行一个 .net Windows 服务,它每 2 小时会从数据库中获取一些数据并针对未来的查询对其进行优化。涉及 varchar(6000) 列,但我估计它很少会超过 4000 字节。实际上,此列通常可以在 600 和 2400 之间变化。6000 有助于避免截断错误。我仍然可以通过.net 控制该列的大小。永远不会有更新或删除。只需选择(每 2 小时插入一次)。每 2 小时将有大约 1000 个插入。
我使用的是 Sql Server 2005。据说页面大小为 8096 字节。我需要在表中插入行。考虑到行的大小,一个页面可以容纳 4 到 12 行。
因此,我将从.net 中读取数据库中的数据,将其存储在内存中(也许使用一些聚类算法?),然后插入大约 1000 行。
我想知道在这种情况下是否有办法避免或最小化页面碎片。