Cuantas tablas puede sql | SQL Server Performance Forums

SQL Server Performance Forum – Threads Archive

Cuantas tablas puede sql

Favor, cuantas tablas puede almacenar sql, tengo un problema con tablas de 1,7 millones de registros, las consultas son lentas, y si agrego indices, la inserccion en esta tabla es muy lenta o quiebra el tiempo de espera, tengo pensado generar tablas mensuales los cuales tendra un promedio de 30 000 registros mensuales o 50 000, asi si la produccion incrementa barbaramente, llegare a tener unos 200 000 registros mensuales, teniendo una tabla de soporte o indice que me indicara donde ubicar mi informacion, por eso queria saber la cantidad maxima de tablas en sql, o algun consejo? Jesus Aguilar
Los objetos en una base de datos incluyendo: tablas, vistas, procedimientos almacenados, procemiento almacenados extendidos, triggers, reglas (rules), defaults y restricciones (constraints) no pueden exceder 2.147.483.647.
Luis Martin
Moderator
SQL-Server-Performance.com One of the symptoms of an approaching nervous breakdown is the belief that one’s work is terribly important
Bertrand Russell
All postings are provided “AS IS” with no warranties for accuracy.
Ok, muchas gracias por el dato
Fejate si te son útiles las vistas divididas.

Ok, si son utiles es la manera como trabajare, primero busco en el indice donde puedo ubicar mi informacion y luego hago una consulta a la multiples tablas que encuentre, vista exactamente no, sino un store ya que enviare multiples parametros segun requiera. Gracias por la nota de vistas divididas
Las vistas divididas de SQL Server se encargan solas de saber en que tabla está la información. Supongamos que un vista dividida esta formada por cuatro tablas, la de ventas del año 2002, 2003, 2004 y 2005. Para este ejemplo el criterio de particion de la tabla es el año de venta. Cuando insertás en la vista, según sea la fecha, la pondrá en la tabla que corresponda. Saludos
Es muy bueno el dato, me podrias explicar mas detallado, con algun ejemplo, pq como podria saber en que tabla insertare una nueva factura, por la fecha pero que programacion en sql adicional se haria para que se ejecture la insersion, en mi caso tengo una produccion de 50 paquetes con 20 prendas cada paquete y una secuencia de operaciones, digamos cortar, pegar, unir, cerrar costado, el resultado tendria que ser
paquete operacion cantidad corte produccion
1 cortar 20 125 147
1 pegar 20 125 147
1 unir 20 125 147
2 cortar 20 125 147
2 pegar 20 125 147
2 unir 20 125 147
3 cortar 20 125 147
3 pegar 20 125 147
3 unir 20 125 147
1 cortar 20 127 147
1 pegar 20 127 147
1 unir 20 127 147 Eso hace mi sistema, con mas campos pero mi base crece a un promedio de 10 000 registros x dia, por lo cual partire la tabla resultante en tablas mensuales y generar un indice por corte donde guarde el corte, produccion, prenda, etc y el nombre de la tabla donde pueda ubicar los registros, la vista me sirve pero antes de hacerlo tendria que saber en que tablas buscar, x eso lo hago con stores para agilizar el trabajo.
Te mando un ejemplo, fijate que los insert se hacen a la vista que despues distribuye el dato a la tabla correspondiente, la vista utiliza las CONSTRAINT CHECK para saber en que tabla tiene que poner el registro. Las vistas divididas tienen algunas restricciones que deberias leer en el manual de SQL Server antes de utilizarlas. Saludos — drop TABLE [Factura_2005_Enero]
CREATE TABLE [Factura_2005_Enero] (
[paquete] [int] NOT NULL ,
[operacion] [varchar] (10) NOT NULL ,
[cantidad] [int] NOT NULL ,
[corte] [int] NOT NULL ,
[produccion] [int] NOT NULL ,
[Fecha] [datetime] NOT NULL ,
[Mes] [int] NOT NULL ,
[Año] [int] NOT NULL ,
CONSTRAINT [PK_Factura_2005_Enero] PRIMARY KEY CLUSTERED
(
[Mes],
[Año],
[operacion],
paquete
) ON [PRIMARY] ,
CONSTRAINT [CK__01] CHECK (datepart(year,[Fecha]) = 2005 and datepart(month,[fecha]) = 1) ,
CONSTRAINT [CK__02] CHECK ([Año] = 2005),
CONSTRAINT [CK__03] CHECK ([Mes] = 1)
) — drop TABLE [Factura_2005_Febrero] CREATE TABLE [Factura_2005_Febrero] (
[paquete] [int] NOT NULL ,
[operacion] [varchar] (10) COLLATE Modern_Spanish_CI_AS NOT NULL ,
[cantidad] [int] NOT NULL ,
[corte] [int] NOT NULL ,
[produccion] [int] NOT NULL ,
[Fecha] [datetime] NOT NULL ,
[Mes] [int] NOT NULL ,
[Año] [int] NOT NULL ,
CONSTRAINT [PK_Factura_2005_Febrero] PRIMARY KEY CLUSTERED
(
[Mes],
[Año],
[operacion],
paquete
) ON [PRIMARY] ,
CONSTRAINT [CK_03] CHECK (datepart(year,[Fecha]) = 2005 and datepart(month,[fecha]) = 2) ,
CONSTRAINT [CK_04] CHECK ([Año] = 2005),
CONSTRAINT [CK_05] CHECK ([Mes] = 2)
)
GO — drop VIEW Factura CREATE VIEW Factura AS
SELECT * FROM Factura_2005_Enero
UNION ALL
SELECT * FROM Factura_2005_Febrero GO set dateformat ymd
set nocount on insert Factura (paquete, operacion, cantidad, corte, produccion, Fecha , Mes, Año)
values (2,’Cotre’,50,121,1213,’2005/01/15′,1,2005) insert Factura (paquete, operacion, cantidad, corte, produccion, Fecha , Mes, Año)
values (1,’Pintado’,250,21,450,’2005/02/15′,2,2005) insert Factura (paquete, operacion, cantidad, corte, produccion, Fecha , Mes, Año)
values (3,’Cotre’,650,27,58,’2005/01/10′,1,2005) insert Factura (paquete, operacion, cantidad, corte, produccion, Fecha , Mes, Año)
values (4,’Lustre’,20,10,52,’2005/01/10′,1,2005) insert Factura (paquete, operacion, cantidad, corte, produccion, Fecha , Mes, Año)
values (5,’Cotre’,250,21,450,’2005/02/15′,2,2005) set nocount off — Ver los 3 registros insertados a la tabla Enero SELECT * FROM Factura_2005_Enero — Ver los 2 registros insertados a la tabla Enero SELECT * FROM Factura_2005_Febrero — La vista tiene todos los reguistros SELECT * FROM Factura
Ok, gracias por el dato, la verdad no sabia que se podria manejar de esa manera la informacion tambien, gracias
]]>