Domanda

In una delle mie primissime società avevamo una tabella separata che memorizzava lunghe descrizioni su una colonna di tipo testo. Penso che ciò sia stato fatto a causa delle limitazioni che derivano dal tipo di testo.

Ora sto progettando le tabelle per l'applicazione esistente su cui sto lavorando e questa domanda mi viene in mente. Sto risuonando verso l'archiviazione della lunga descrizione dei miei articoli sulla stessa tabella di articoli su una colonna varchar (max). Capisco che non posso indicizzare questa colonna, ma va bene perché non eseguirò ricerche su queste colonne.

Finora non riesco a vedere alcun motivo per separare questa colonna in un'altra tabella.

Puoi darmi un input se mi manca qualcosa o se memorizzare le mie descrizioni nella stessa tabella su varchar (max) è un buon approccio? Grazie!

È stato utile?

Soluzione

Conserva i campi nella tabella a cui appartengono. Da SQL Server 2005 il motore è diventato molto più intelligente per quanto riguarda i tipi di dati di grandi dimensioni e anche i tipi di dati brevi di lunghezza variabile. I vecchi tipi TEXT, NTEXT e IMAGE sono obsoleti. I nuovi tipi con lunghezza MAX sono la loro sostituzione. Con SQL 2005 ogni partizione ha 3 tipi di unità di allocazione sottostanti: una per le righe, una per i LOB e una per l'overflow delle righe. I tipi MAX sono archiviati nell'unità di allocazione LOB, quindi il motore sta gestendo una tabella separata per memorizzare oggetti di grandi dimensioni. L'unità di overflow delle righe è per i dati di lunghezza variabile nella riga che dopo un aggiornamento non si adattavano più alla pagina, quindi è "overflow" in un'unità separata.

Vedi Organizzazione di tabelle e indici .

Altri suggerimenti

Dipende da quanto spesso li usi, ma sì, potresti volerlo su una tabella separata. Prima di prendere la decisione, ti consigliamo di leggere il paging dei file SQL, le suddivisioni di pagina e i dettagli di " come " sql memorizza i dati.

La risposta breve è che varcharmax () può sicuramente causare una riduzione delle prestazioni in cui tali lunghezze di campo cambiano molto a causa di un aumento delle divisioni di pagina che sono operazioni costose.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top