BirçoÄŸumuz bir tablonun içeriÄŸine bakmak için SELECT * FROM … atarız tablolara ve çok da severiz, hatta kimimiz sanki 700.000 kaydı okuyacakmış gibi SQL Server IDE’sinin inleyerek dönen sorgu barına STOP dahi demez.
GeliÅŸtirme ve test aÅŸamalarında bu ÅŸekilde tablolara atılan sorgular eskiden OPEN TABLE diye açılırdı ancak 2005′ten sonra 2008 ile Microsoft bu zaafı gördü ve rastgele atılan OPEN TABLE‘ların engellenmesi için “SELECT TOP 1000 Rows” seçimini koydu…
Yurdum DBA’i bu kezde 1000 lafını SQL’den silerek çalıştırdı ki amacı test ederken rastgelen gelen bir kayıt kümesi görmekti, ilk kayıtların tam bir anlamı olmuyordu.
İşte özetle söylemek istediÄŸimi anlayanlara kısa bir kod… Bu sayede artık tablonun ne kadarlık bir kek dilimini istiyorsanız alabilirsiniz.
– SELECT Example with TABLESAMPLE
SELECT FirstName,
MiddleName,
LastName
FROM Person.Contact
TABLESAMPLE (1 PERCENT);
Görüldüğü gibi sorguyu her çalıştırdığımda % 1′lik dilimin döndürdüğü yaklaşık kayıt sayısı deÄŸiÅŸtiÄŸi gibi, kayıtların içeriÄŸi de rastgele olarak deÄŸiÅŸiyor.
Benzin mi yakıyor diye düşünülebilir ancak SELECT * FROM … birçok online sistemde sizin farketmediÄŸiniz TABLE LOCK vakaları yaratabilir.
Bizimkisi şeytanın avukatlığı değil elbette. Aman dikkat!
Bu sorguya 100 PERCENT diyerek test eden arkadaşları şimdiden ayakta alkışlıyorum :)










Related Articles
No user responded in this post
Leave A Reply