![]() |
1
2
你也可以尝试在一些小的where子句中使用rn字段,比如 其中,外部查询中的rn>0可能会强制编译器使rn字段通过。 另外,我认为,如果你想随机抽取数百万条记录的样本,你的整体查询将是一个问题。这只会抓取“第一次离开磁盘”的记录块,这些记录虽然不能保证是相同的,但往往会超过不相同的10000条。 我建议在最小值(primarykey)和最大值(primarykey)之间创建一组10000个随机数,然后在(…)中执行where primarykey或类似操作。 |
![]() |
2
1
添加类似 其中rn不为空 到外部查询,所以 氡 它包含在查询计划中,但未进行优化 |
![]() |
3
0
我也在同一个问题上挣扎。我用交叉应用和Top解决了这个问题。记住,交叉应用将我的外部表拉入派生表的范围,我知道必须有一种方法来做到这一点。 以下代码将根据制造商添加3(*)个随机相关产品。
*请注意,在以下两种情况下,插入的值将少于3: 1)如果制造商有3种相关产品 2)(有问题)其中,随机前三名返回相同的产品。 (1)以上是不可避免的。 我处理上述(2)的方法是运行两次,然后删除重复项。这仍然不是100%,但从统计上看,这已经足够满足我的要求了。这是一个夜间运行的脚本,但我仍然喜欢快速地将<gt;应用到交叉点之外-任何拉入范围的操作都会导致由制造商联接导致的派生表扫描,即使拉入范围内也意味着(2)不再是一个问题,但它的速度慢得让人头疼,而不是立即应用属性。R指数。 |
![]() |
ybou · 需要帮助从SQL 2005查询中删除过时的=*连接运算符 7 年前 |
![]() |
Robert · 将多个分隔符分隔的字段视为不同的行 8 年前 |
![]() |
hud · 执行存储过程会导致错误 8 年前 |
![]() |
Gonzalo · 如何将存储过程的结果插入到新表中? 9 年前 |