Gli UDT CLR sono comunemente utilizzati nelle applicazioni aziendali?
-
20-08-2019 - |
Domanda
Sto studiando alcune delle più recenti tecnologie disponibili in SQL Server 2005/2008. La maggior parte delle mie applicazioni sono scritte in C # e generalmente hanno un componente di database. La maggior parte di ciò che trovo su Google è di base, "Ecco come impostare un UDT CLR". Ho alcune domande generali sulla loro applicazione e utilizzo nel mondo reale.
- Gli UDT ospitati da CLR sono comunemente usati nelle applicazioni? Grande o piccola scala
- Ci sono problemi di prestazioni nell'usarli?
- I DBA generalmente preferiscono utilizzare solo i tipi predefiniti?
Sembrano un modo per stipare un oggetto in una tabella. Sono corretto nel ritenere che l'attuale gamma di problemi che hanno soluzioni semplificate a causa del loro uso sia minima?
Soluzione
Gli UDT hanno un vantaggio solo quando rappresentano veramente alcuni elementi fondamentali della tua applicazione. Quasi sempre possono essere suddivisi in tipi predefiniti, ma i vantaggi sono che non è necessario eseguire il cast dell'oggetto restituito. Quindi probabilmente non dovresti usare UDT che rappresentano oggetti complessi come Employee, ma qualcosa di fondamentale come Size o Location potrebbe essere una buona scelta perché è leggera ma molto rigida nella sua definizione.
Altri suggerimenti
Ho studiato il loro utilizzo, ma mi sono sentito a disagio per il controllo delle versioni. Cosa succede se si carica una versione più recente dell'assembly sul server? A causa delle dipendenze, dovresti eliminare l'UDT e ricrearlo, ma cosa succede ai dati? Restiamo fedeli ai tipi integrati.