Varchar , nulls y espacio

09/01/2009 - 20:58 por Carlos | Informe spam
Hola .

Si una tabla tiene un ejemplo un campo Varchar(100), como se comporta el
espacio fisico para cuando tenga una cadena vacia o un valor NULL.
Se economiza realmente?

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
09/01/2009 - 23:11 | Informe spam
Carlos,

Si se economiza. Trata este ejemplo.

create table #t (
c1 char(25),
c2 varchar(25)
)

insert into #t VALUES ('a', 'a')

select datalength(c1), datalength(c2)
FROM #t

drop table #t
GO

SQL Server separa el espacio necesario para las columns de longitud fija, no
asi para las columnas de longitud variable varchar, nvarchar,varbinary,
vardecimal,etc.

Chequea el libro de Kalen Delaney "Inside SQL Server ???", o el blog de Paul
Randal, para leer la estructura interna de las paginas de data.

http://www.sqlskills.com/blogs/paul...ecord.aspx

Inside Microsoft SQL Server 200
http://www.amazon.com/Inside-Micros...ks&qid31538850&sr=8-10

Inside Microsoft SQL Server(TM) 2005: The Storage Engin
http://www.amazon.com/Inside-Micros...ks&qid31538850&sr=8-2

Microsoft SQL Server 2000 Unleashed
http://www.amazon.com/Microsoft-SQL...gy_b_img_c


AMB


"Carlos" wrote:

Hola .

Si una tabla tiene un ejemplo un campo Varchar(100), como se comporta el
espacio fisico para cuando tenga una cadena vacia o un valor NULL.
Se economiza realmente?



Respuesta Responder a este mensaje
#2 Jose Mariano Alvarez
09/01/2009 - 23:25 | Informe spam
Si lo economiza cuando son de longitud variable.
Tiene un bitmap para indicar cuales son nulos y guarda el valor por omision
en el caso de que no sean de longitud variable.

Sugiero que veas los libros Inside SQL Server o uses el SQL internals viewer



Saludos

Ing. Jose Mariano Alvarez
SQLTotal Consulting


(Cambia los ceros por O y saca lo que sobra)


IMPORTANTE
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.


Por favor tratar de indicar la versión de SQL y Service Pack.
La inclusión de (CREATE, INSERTS, etc.) para poder reproducir el problema
también ayuda.







"Carlos" <carl> wrote in message
news:
Hola .

Si una tabla tiene un ejemplo un campo Varchar(100), como se comporta el
espacio fisico para cuando tenga una cadena vacia o un valor NULL.
Se economiza realmente?

Respuesta Responder a este mensaje
#3 Maxi
09/01/2009 - 23:51 | Informe spam
A ver, null siempre ocupara menos, yo no me preocuparia por eso, simplemente
veria si realmente esta bien el tipo de dato varchar(100) o es mucho

"Carlos" <carl> escribió en el mensaje de
noticias:
Hola .

Si una tabla tiene un ejemplo un campo Varchar(100), como se comporta el
espacio fisico para cuando tenga una cadena vacia o un valor NULL.
Se economiza realmente?

Respuesta Responder a este mensaje
#4 Carlos
13/01/2009 - 01:52 | Informe spam
Muchas gracias.


"Alejandro Mesa" escribió en el
mensaje news:
Carlos,

Si se economiza. Trata este ejemplo.

create table #t (
c1 char(25),
c2 varchar(25)
)

insert into #t VALUES ('a', 'a')

select datalength(c1), datalength(c2)
FROM #t

drop table #t
GO

SQL Server separa el espacio necesario para las columns de longitud fija,
no
asi para las columnas de longitud variable varchar, nvarchar,varbinary,
vardecimal,etc.

Chequea el libro de Kalen Delaney "Inside SQL Server ???", o el blog de
Paul
Randal, para leer la estructura interna de las paginas de data.

http://www.sqlskills.com/blogs/paul...ecord.aspx

Inside Microsoft SQL Server 2000
http://www.amazon.com/Inside-Micros...ks&qid31538850&sr=8-10

Inside Microsoft SQL Server(TM) 2005: The Storage Engine
http://www.amazon.com/Inside-Micros...ks&qid31538850&sr=8-2

Microsoft SQL Server 2000 Unleashed
http://www.amazon.com/Microsoft-SQL...gy_b_img_c


AMB


"Carlos" wrote:

Hola .

Si una tabla tiene un ejemplo un campo Varchar(100), como se comporta el
espacio fisico para cuando tenga una cadena vacia o un valor NULL.
Se economiza realmente?



Respuesta Responder a este mensaje
#5 Carlos
13/01/2009 - 01:53 | Informe spam
Muchas gracias

"Jose Mariano Alvarez"
escribió en el
mensaje news:
Si lo economiza cuando son de longitud variable.
Tiene un bitmap para indicar cuales son nulos y guarda el valor por
omision en el caso de que no sean de longitud variable.

Sugiero que veas los libros Inside SQL Server o uses el SQL internals
viewer



Saludos

Ing. Jose Mariano Alvarez
SQLTotal Consulting


(Cambia los ceros por O y saca lo que sobra)


IMPORTANTE
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.


Por favor tratar de indicar la versión de SQL y Service Pack.
La inclusión de (CREATE, INSERTS, etc.) para poder reproducir el problema
también ayuda.







"Carlos" <carl> wrote in message
news:
Hola .

Si una tabla tiene un ejemplo un campo Varchar(100), como se comporta el
espacio fisico para cuando tenga una cadena vacia o un valor NULL.
Se economiza realmente?

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida