Archivos ndf

07/06/2009 - 07:33 por Rosa Mendoza | Informe spam
Saludos tengo una base de datos que tiene tres archivos de datos (1 mdf:
el primario; y 2 ndf mas) y los archivos estan grabados en catpetas
separadas (carpeta1, carpeta2 y carpeta3).

Como le indico a sql que al momento de crear tablas en esa base de
datos, algunas tablas se almacen en un ndf y otras en el otro ndf...?

Es decir deseo especificar cuales tablas aqlmacernar en un ndf y cuales
almacenar en otro o el primario (mdf)

Por ejemplo en un ndf las tablas que tienen pocos datos, y el el otro la
tablas con muchos datos, por ejemplo.



Script ejemplo:

CREATE DATABASE [basededatos] ON PRIMARY
( NAME = 'basededatos', FILENAME = 'C:\Carpeta1\basededatos.mdf' , SIZE
= 3072KB , FILEGROWTH = 1024KB ),
FILEGROUP [SEGUNDO]
( NAME = 'segundo', FILENAME = 'C:\Carpeta2\segundo.ndf' , SIZE = 3072KB
, FILEGROWTH = 1024KB ),
FILEGROUP [TERCERO]
( NAME = 'TRECERO', FILENAME = 'C:\Carpeta3\TRECERO.ndf' , SIZE = 3072KB
, FILEGROWTH = 1024KB )
LOG ON
( NAME = 'basededatos_log', FILENAME = 'C:\Temp\basededatos_log.ldf' ,
SIZE = 1024KB , FILEGROWTH = 10%)
GO

USE [basededatos]
GO

IF NOT EXISTS (SELECT name FROM sys.filegroups WHERE is_default=1 AND
name = 'PRIMARY') ALTER DATABASE [basededatos] MODIFY FILEGROUP
[PRIMARY] DEFAULT
GO


Besos y gracias
Rosa Mendoza
edberlith@gmail.com

Preguntas similare

Leer las respuestas

#1 Maxi
07/06/2009 - 15:48 | Informe spam
Hola, mirate este link

http://www.mssqltips.com/tip.asp?tip12



Maxi Accotto
Microsoft MVP en SQL Server
Consultor en SQL Server
http://blog.maxiaccotto.com



"Rosa Mendoza" escribió en el mensaje de
noticias:#
Saludos tengo una base de datos que tiene tres archivos de datos (1 mdf:
el primario; y 2 ndf mas) y los archivos estan grabados en catpetas
separadas (carpeta1, carpeta2 y carpeta3).

Como le indico a sql que al momento de crear tablas en esa base de datos,
algunas tablas se almacen en un ndf y otras en el otro ndf...?

Es decir deseo especificar cuales tablas aqlmacernar en un ndf y cuales
almacenar en otro o el primario (mdf)

Por ejemplo en un ndf las tablas que tienen pocos datos, y el el otro la
tablas con muchos datos, por ejemplo.



Script ejemplo:

CREATE DATABASE [basededatos] ON PRIMARY
( NAME = 'basededatos', FILENAME = 'C:\Carpeta1\basededatos.mdf' , SIZE =
3072KB , FILEGROWTH = 1024KB ),
FILEGROUP [SEGUNDO]
( NAME = 'segundo', FILENAME = 'C:\Carpeta2\segundo.ndf' , SIZE = 3072KB ,
FILEGROWTH = 1024KB ),
FILEGROUP [TERCERO]
( NAME = 'TRECERO', FILENAME = 'C:\Carpeta3\TRECERO.ndf' , SIZE = 3072KB ,
FILEGROWTH = 1024KB )
LOG ON
( NAME = 'basededatos_log', FILENAME = 'C:\Temp\basededatos_log.ldf' ,
SIZE = 1024KB , FILEGROWTH = 10%)
GO

USE [basededatos]
GO

IF NOT EXISTS (SELECT name FROM sys.filegroups WHERE is_default=1 AND name
= 'PRIMARY') ALTER DATABASE [basededatos] MODIFY FILEGROUP [PRIMARY]
DEFAULT
GO


Besos y gracias
Rosa Mendoza

Respuesta Responder a este mensaje
#2 Alejandro Mesa
07/06/2009 - 15:56 | Informe spam
Rosa,

Eso no se puede hacer porque la creacion esta atada a un grupo de archivos
(filegroup) y no a un archivo en especifico. Si un grupo esta formado por mas
de un archivo, SQL Server tratara por todos los medios de que la carga sea
pareja.

En otras palabras, puedes indicarle a SQL Server en cual grupo deseas poner
cada tabla e indice. Cuando el grupo no se especifica, entonces la tabla se
crea en el grupo marcado por defecto, que en la mayoria de las dbs es el
grupo primario ([PRIMARY]).


AMB


"Rosa Mendoza" wrote:

Saludos tengo una base de datos que tiene tres archivos de datos (1 mdf:
el primario; y 2 ndf mas) y los archivos estan grabados en catpetas
separadas (carpeta1, carpeta2 y carpeta3).

Como le indico a sql que al momento de crear tablas en esa base de
datos, algunas tablas se almacen en un ndf y otras en el otro ndf...?

Es decir deseo especificar cuales tablas aqlmacernar en un ndf y cuales
almacenar en otro o el primario (mdf)

Por ejemplo en un ndf las tablas que tienen pocos datos, y el el otro la
tablas con muchos datos, por ejemplo.



Script ejemplo:

CREATE DATABASE [basededatos] ON PRIMARY
( NAME = 'basededatos', FILENAME = 'C:\Carpeta1\basededatos.mdf' , SIZE
= 3072KB , FILEGROWTH = 1024KB ),
FILEGROUP [SEGUNDO]
( NAME = 'segundo', FILENAME = 'C:\Carpeta2\segundo.ndf' , SIZE = 3072KB
, FILEGROWTH = 1024KB ),
FILEGROUP [TERCERO]
( NAME = 'TRECERO', FILENAME = 'C:\Carpeta3\TRECERO.ndf' , SIZE = 3072KB
, FILEGROWTH = 1024KB )
LOG ON
( NAME = 'basededatos_log', FILENAME = 'C:\Temp\basededatos_log.ldf' ,
SIZE = 1024KB , FILEGROWTH = 10%)
GO

USE [basededatos]
GO

IF NOT EXISTS (SELECT name FROM sys.filegroups WHERE is_default=1 AND
name = 'PRIMARY') ALTER DATABASE [basededatos] MODIFY FILEGROUP
[PRIMARY] DEFAULT
GO


Besos y gracias
Rosa Mendoza


Respuesta Responder a este mensaje
#3 Rosa Mendoza
09/06/2009 - 01:20 | Informe spam
pero me han dicho con con particiones de tabla si se puede, lo que no se
es como hacerlo.



Rosa Mendoza

Respuesta Responder a este mensaje
#4 Alejandro Mesa
09/06/2009 - 01:52 | Informe spam
Rosa,

Eso no es correcto. Las particiones estan asociadas a un esquema de
particion, el cual mapea las particiones de una tabla / indice a uno o varios
grupos de archivos, y no a archivos individuales dentro de un grupo.

Como te explique antes, los archivos ndf no pueden ser asignados
directamente para almacenar objetos de la db. Un grupo puede tener un # de
archivos secundarios, pero es SQL Server quien se encarga de hacer una carga
balanceado dentro de los archivos que conforman el grupo.

Descripción de archivos y grupos de archivos
http://msdn.microsoft.com/es-es/library/ms189563(SQL.90).aspx


AMB


"Rosa Mendoza" wrote:

pero me han dicho con con particiones de tabla si se puede, lo que no se
es como hacerlo.



Rosa Mendoza


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida