2 puan yazan GN⁺ 2025-01-03 | 1 yorum | WhatsApp'ta paylaş
  • Advent of Code 2024'ü Saf SQL ile Çözmek

  • Özet

    • Yazar bu yıl Advent of Code'u tamamen saf SQL ile çözmeye karar vermiş.
    • Bu deneyim, problemleri farklı düşünmeye zorladığı için ilginçti ve tüm günleri SQL ile çözülebildi.
    • SQL, beklenmedik şekilde çoğu zaman kullanımı oldukça rahat bir seçenekti.
  • 11. Gün örneği

    • Sorunun tüm çözümü, girdi dahil olmak üzere sunuluyor.
    • SQL'de girdinin ayrıştırılması biraz zahmetli olsa da, imkânsız değil.
    • Algoritma nispeten kısaydı ve özyinelemeli alan dolaşımı yapıyordu.
    • SQL, küçük ölçekli arama görevleri için oldukça uygundu.
  • Diğer Günlerin Zorlukları

      1. günde, alanın minimum arama mesafesini hesaplamaya benzer bir görev vardı.
    • SQL ile ifade etmek kolaydı ancak değerlendirme verimsizdi.
    • Büyük girdilerde çok fazla durumu saklamak gerekir ve 200 GB'tan fazla bellek gereklidir.
    • Bazı DBMS'ler bu sorunu çözmek için gereken yetenekleri sunmaz.
  • Özyinelemeli SQL'in Sınırları

      1. günde, seyrek bir grafikte maksimum clique bulunmalıydı.
    • Bron-Kerbosch algoritmasını kullanarak çözülebilir ama özyinelemeli SQL ile ifade etmek zordu.
    • Özyinelemeli SQL yalnızca tek bir küme aktarabildiği için, birden fazla kümeyi koruyan algoritmalarla çatışıyordu.
  • Sonuç

    • Karmaşık algoritmaları SQL ile kodlamak mümkün ve SQL kodu beklenenden daha rahat olabilir.
    • Durumu güncelleyebilen bir mekanizma varsa, özyinelemeli SQL daha verimli ve kullanımı daha rahat olurdu.
    • Karmaşık durum manipülasyonu mekanizmaları eklendiğinde, SQL veritabanı içinde karmaşık algoritmalar çalıştırmak için güçlü bir seçenek haline gelebilir.

1 yorum

 
GN⁺ 2025-01-03
Hacker News Yorumu
  • Yeni menü öğelerine verilen tepki, hırs, utanma ve insan yaratıcılığına hayranlığın bir karışımı
  • Kariyerim boyunca en çok SQL yazdım; son 5 yılda daha az kullansam da buna hâlâ çok eğlendim
  • Tekrarlayıcı şekilde düşünmeyi bırakıp küme operasyonlarıyla düşünmeye başlayınca işler doğal ve güçlü hale geliyor
  • AoC’yi Google Sheets ile denedim, Day 6’ya kadar gittim ama bazı girdilerde karakter sınırına takıldım
    • Mobilde açmamanızı öneririm
  • Geçmişte bir operasyon mülakatında, büyük veri kümeleri için fatura raporlaması yapma sorusu gelmişti
    • Veri bilimcisi olmadığım için çözümü kurmakta zorlandım
    • Crystal Reports gibi bir raporlama paketi kullanacağımı söyledim
    • Sorunu SQL ile çözdüm ama bunun için birçok teknik gerekiyordu
  • EdgeQL ile AoC’yi denedim ve bunu ilginç buldum
    • İlgili tweeti paylaştım
  • SQL ile bir kuyruklandırma/konteynerleştirme sistemi yazdım ve bazı ek özellikler kullandım
    • Temel algoritma SQL’in özellikleriyle iyi örtüşüyordu
    • Bazı yönleri SQL’e uyarlamak zordu
  • AoC2024’ü Google Sheets’te yapıyorum ve bunu belgeleyeceğim
  • Sadece saf SQL ile ilerlemek etkileyici ve eski bir blogu canlı tutmak bir "niş ustalığı"nı gösteriyor