5 Aralık 2008 Cuma

Rastgele Veri Seçimi (TABLESAMPLE)

Bir tablodan rastgele veri seçmek için FROM' dan sonra TABLESAMPLE komutunun kullanılabileceğini biliyor muydunuz?

Örneğin:
SELECT * FROM Sales.SalesOrderDetail TABLESAMPLE SYSTEM (2 PERCENT)

şeklinde kullanabilirsiniz. Yalnız şunu hemen belirteyim ki bu komut oldukça istikrarsızdır. Yani siz, tablodaki kayıtların %2' sini getirmesini belirtirsiniz, ama dönecek kayıtların sayısı oldukça değişken olacaktır. Bu komutu şu şekilde de kullanabilirsiniz:

SELECT * FROM Sales.SalesOrderDetail TABLESAMPLE SYSTEM (500 rows)

ama kesinlikle net olarak 500 kayıt döndürmeyecek, 800 ile 300 arası kayıt döndürecektir.

Bir başka kullanılışı ise şöyle:

SELECT * FROM Sales.SalesOrderDetail TABLESAMPLE SYSTEM (500 rows) REPEATABLE (123456)


Bu kullanımda REPEATABLE seçeneğinde bir "bigint" değeri belirtip, her seferinde aynı sonucun dönmesini sağlayabilirsiniz, ta ki veri değişmediği sürece.

Eğer bir INSERT, UPDATE, DELETE veya Index Rebuilding gibi işlemler yapılırsa, REPEATABLE' da verdiğiniz değer aynı bile olsa farklı bir set dönecektir.

Hiç yorum yok: