解決的方式可以使用 TABLESAMPLE 的語法, 如下:
代碼: 選擇全部
SELECT * FROM TBL_TABLE1 TABLESAMPLE SYSTEM (300 rows)
這種方式將是以取樣的方式, 取出某些 page 的資料, 若是要隨機的話, 可以再下達 order by newid() 如下:
代碼: 選擇全部
SELECT TOP 5 * FROM TBL_TABLE1 TABLESAMPLE SYSTEM (300 rows) ORDER BY NEWID()
另外的限制是必須為 local table (也就是儲在本地的資料表, 因為是利用 page 取出的), 不過後面的 300 rows 只會取出接近的筆數, 無法很精確, 所以要能確保數量的方式就是使用 top n 配合, 這樣效果應該能改善.
參考資料:
http://www.bhcode.net/article/20100629/11534.html