SORU
3 EYLÜL 2010, Cuma


Seçin * kullanımı haklı olabilir mi?

Her zaman SELECT * kötü ve veba gibi Kaçınılması gereken benim geliştiriciler için vaaz verdim.

Haklı olabilir nerede herhangi bir durum var mı?

En optimize anlamaya olabilir COUNT(*) - bahsetmiyorum.

Edit

Üretim kodu bahsediyorum.

Ve bir çok örnek gördüm bu kötü bir uygulama oldu bir eski asp uygulama kullanılan select * bir saklı yordam ve kullanılan ADO döngü döndürülen kayıtları, ama sütunlar ile dizin. Yeni bir alan bir yere eklendiğinde ne alan listenin sonuna dışındaki hayal edebilirsiniz.

CEVAP
3 EYLÜL 2010, Cuma


Denetim tetikleyiciler * kullanarak gayet mutluyum.

Bu durumda olabilir aslında kanıtlamak yarar çünkü olacaktır emin olun Eğer ek bir sütun eklenir Bankası tablo büyüteceğim bir hata bu kadar olamaz unutulmuş için anlaşma ile bu denetim tetikleyici ve/veya denetim tablo yapısı.

(dotjoe) ayrıca, türetilen tablolar kullanmadan mutluyum ve tablo ifadeleri sütun. Ben de alışkanlıkla tam tersi.

WITH t
     AS (SELECT *,
                ROW_NUMBER() OVER (ORDER BY a) AS RN
         FROM   foo)
SELECT a,
       b,
       c,
       RN
FROM   t; 

Ben çoğunlukla aşina SQL Server ve orada en azından doktoru hiçbir sorun tanıyan tek sütun a,b,c gerekecektir ve kullanım * iç tablo ifade etmez neden gereksiz yük alma ve atma gereksiz sütunları.

Prensip SELECT * olması gerekeni güzel bir görünüm yanı sıra son SELECT manzaraya bir yerde olsa gerek olmaya bilir ancak SQL Server bu sorunlara neden olabilir gibi saklar sütun meta gören değil otomatik olarak güncelleme zaman temel tablo değiştirme ve kullanım * yol kafa karıştırıcı ve yanlış sonuçlar sürece sp_refreshview çalıştırmak için güncelleme bu meta.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DanceOn

    DanceOn

    6 Mayıs 2006
  • Matt Davis

    Matt Davis

    4 ŞUBAT 2006
  • vgeller1

    vgeller1

    22 Kasım 2009