Monthly Archives: Kasım 2006

Özlü sözler – 5

The memory management on the PowerPC can be used to frighten small children.
Linus Torvalds

If you sat a monkey down in front of a keyboard, the first thing typed would be a unix command.
Bill Lye

I code in vi because I don’t want to learn another OS. 🙂
Robert Love

Premature optimization is the root of all evil (or at least
most of it) in programming.”

Donald Knuth

Beware of bugs in the above code; I have only proved it correct, not tried it.
Donald Knuth

Reklamlar

Özlü sözler – 4 – Steve Jobs

“”My girlfriend always laughs during sex—no matter what she’s reading.””

“”It took us three years to build the NeXT computer.
If we’d given customers what they said they wanted, we’d have built a
computer they’d have been happy with a year after we spoke to them –
not something they’d want now.””

“”You can’t just ask customers what they want and then
try to give that to them. By the time you get it built, they’ll want
something new.””

“”Sometimes when you innovate, you make mistakes. It
is best to admit them quickly, and get on with improving your other
innovations.””

“”Innovation distinguishes between a leader and a follower.””

“”Design is not just what it looks like and feels like. Design is how it works.””

Milliyetçilik

Jean JauresFransız Felsefe öğretmeni ve sosyalist lider “Jean Jaures”, tek cümleyle özetlemiş olayı:

“Ulusalcılığın azı, insanı enternasyonalizmden uzaklaştırır,
ulusalcılığın çoğu, insanı enternasyonalizme yaklaştırır.”

.

.

.

.

.

Sql Server – Genel sayfalandırma çözümü

Eğer bir tabloda 4000000 satırınız varsa (burada yazar testlerde kullandığı tablodan bahsediyor) elinizdeki veriyi sayfalandırmak için akıllıca çözümler aramak gerekir. 🙂

ADO.NET’in SqlDataSource nesnesi, tüm tabloyu web sunucusunun belleğine alarak pratik ama yüksek boyutlarda düşünülemeyecek bir çözüm sunuyor. Bu sorunu Sql boyutunda çözmek en iyisi olacaktır.
Sql Server üzerinde, Server-side cursors, Row-number, subquery(top in top) gibi bir çok çözümü test ettim. Genel olarak row-number diğerlerine göre en verimli çözüm olarak görünüyordu. Ancak tek kötü yanı, kullanımında row_number() over (order by id) derken bahsedilen tablonun sütun ismine bağlı olunması. NWeb projesinde tüm sorgular için genel bir çözüme ihtiyacımız olduğu için bunu kullanamazdık. Ama @@IDENTITY değişkenini ‘ordering column’ olarak kullanmakta bir sakınca yoktu 🙂

@@IDENTITY değişkeni, sözkonusu Transaction sırasında yapılan son INSERT işleminde atanan identity değerini getirir. Eğer bir INSERT işlemi sözkonusu değilse de, NULL değeri taşıyacağından iki koşulda da bizim ORDER BY ifademizde herhangi bir düzensizliğe neden olmayacak.

Sonuç olarak, sonuçlarını sayfalandırmak istediğiniz temel sorgunun “SELECT * FROM [arkadaslar]” olduğunu varsayarak, 4 milyon kayıt içeren bir tablodaki son 10 satırı almak için şunu yazabiliyoruz:

WITH

RawTable as ( SELECT * FROM arkadaslar ),

NumberedTable as ( SELECT *, ROW_NUMBER() OVER (ORDER BY @@IDENTITY) AS rownum FROM RawTable )

SELECT * FROM NumberedTable WHERE rownum < 3500000 AND rownum > 3499990

Not: Sadece SQL Server 2005 üzerinde test ettim. Ama aynı yetenekler Sql Server 2000 ve Oracle 8i’den sonraki sürümlerde de mevcut. Küçük değişikliklerle aynı davranış elde edilebilir.

Arkadaşım Eş –

Stumble‘da gezinirken şöyle bir söze denk geldim:

A nation of sheep will beget a government of wolves. – Edward R. Murrow

Yani diyor ki, “Eşek olana semer vuran çok olur.”.

Yazar burada halka seslenmiş.

‘System Administrator’

piss him off, and you’ll be fired by tomorrow morn(ing).
cause he’s the guy who knows that you’ve been surfing porn.

http://www.youtube.com/watch?v=FE_p5N89XQI

‘sonunda boğazından buldu…’

acildePazartesi sabahı zor nefes almama sebep olan koskocaman bir’küçük dil’ ile uyandım. Acil’de iğneleri ve serumu yedikten sonra, öğrendim ki Pazar akşamı yediğim Midyelerin bu durumda payı varmış 🙂

Özellikle bildiğimiz yerden almamıza ve ilk defa midye yemememe rağmen böyle oldu :(. Umarım kalıcı değildir, zira kronik hale de gelebiliyormuş.