Ayuda sugerencias con una base de datos

Vanel

Bovino maduro
#1
Amigos que tal muy buenos dias, disculpen la molestia y al igual disculpen si de alguna u otra forma esta pregunta no va aqui.

Bueno les planteo mi problema, lo que pasa es que estoy haciendo mi servicio en el Inegio y mi jefe me ha puesto a hacer un trabajo que para ser francos no se por donde empezar, la cuestion es que ellos me han dado una base de datos de mas o menos 600 tablas y muchas tablas contienen mas de 3000 registros, entonces mi trabajo es que tengo que realizar busquedas especificas. El contenido de la basede datos es la siguiente: inventarios de hardware y software, extenciones de archivos de cada computadora en el edificio, cuentas de usuarios en los equipos, registros, programas instalados, etc, entonces mi jefe quiere realizar varios iner join para asi saber que usuario utiliza un programa o que extenciones de archivos tiene, pero mi problema es que como yo no desarrolle la base de datos no se bien cuales son los ID´S y los FK´S, ni que tabla con que tabla esta relacionada como para poder hacer los iner join.

Cabe mensionar que la base de datos esta en SQL server 2005, me gustaria saber como o por donde empezar en esta base de datos, ya que jamas he manejado algo asi, con tantos registros ni tantas tablas, no se por donde empezar, me podrian dar sugerencias?

De antemano muchas gracias por las sugerencias que ustedes me podrian brindar y disculpen si les parece algo tonto lo antes mensionado, pero yo aun soy estudiante universitario y tengo muy poca experiencia.
 
#2
Mmmm no creo q vayas a querer jalar datos de las 600 tablas q dices, yo quiero creer que te dijo datos en especifico q quiere usar, hazle un DESCRIBE a las tablas q vayas a usar y de ahi puedes partir.

Pon mas datos y con gusto te ayudo a armar el Query
 
#3
Carnal...respalda la base de datos y yo te hecho la mano.
Si lo prefieres genera el script sin datos para que no sea tan pesado.
Mándame un mensaje privado para pasarte mi correo para que alli me mandas la info.

No hes que me sienta muy fufurufo.... es que lo soy .... jejejejeje, ya hablando en serio yo estoy acostumbrado a trabajar con ambientes de más de 2,000 tablas y con tablas de más de 600,000 registros, así que para mi no es problema alguno.

Jeje, hoy recuerdo que hace algunos años cuando recien empesaba este foro algunos monos alardeaban de sus conocimientos y me querían retar a superar sus "habilidades" de informática y a trabajar y "optimizar" una super base de datos en Oracle con 1 sola tabla con la enorme cantidad de 100,000 registros que porque yo era un maldito detractor de foxpro y ..... aaaaaa viejos tiempos jajajajaja.

Saludos amigo.


Amigos que tal muy buenos dias, disculpen la molestia y al igual disculpen si de alguna u otra forma esta pregunta no va aqui.

Bueno les planteo mi problema, lo que pasa es que estoy haciendo mi servicio en el Inegio y mi jefe me ha puesto a hacer un trabajo que para ser francos no se por donde empezar, la cuestion es que ellos me han dado una base de datos de mas o menos 600 tablas y muchas tablas contienen mas de 3000 registros, entonces mi trabajo es que tengo que realizar busquedas especificas. El contenido de la basede datos es la siguiente: inventarios de hardware y software, extenciones de archivos de cada computadora en el edificio, cuentas de usuarios en los equipos, registros, programas instalados, etc, entonces mi jefe quiere realizar varios iner join para asi saber que usuario utiliza un programa o que extenciones de archivos tiene, pero mi problema es que como yo no desarrolle la base de datos no se bien cuales son los ID´S y los FK´S, ni que tabla con que tabla esta relacionada como para poder hacer los iner join.

Cabe mensionar que la base de datos esta en SQL server 2005, me gustaria saber como o por donde empezar en esta base de datos, ya que jamas he manejado algo asi, con tantos registros ni tantas tablas, no se por donde empezar, me podrian dar sugerencias?

De antemano muchas gracias por las sugerencias que ustedes me podrian brindar y disculpen si les parece algo tonto lo antes mensionado, pero yo aun soy estudiante universitario y tengo muy poca experiencia.
 

Vanel

Bovino maduro
#4
Una pregunta, eso de generarel escript te refieres al codigo fuente que genera el sql server 2005? esque soy nuevo en este sgbd :D disculpa, de antemano agradesco mucho tu ayuda amigo.
 

Master_Hanzo

Bovino Milenario
#5
mmmm.. estoy algo desacostumbrado al SQL server... y eso que con ese empece, actualmente jalo bases en DB2. Pero 600 tablas en una consulta con Joins! inner, full, left o lo que sea.. se me hace raro.

Por que no vas generando tus propias vistas de acuerdo a lo que desea tu jefe, lo de los keys lo ves ahi en el management.
 

Salandrews

Bovino maduro
#6
Primero, deberías preguntar si existe algún diccionario de tablas, donde expliquen para que sirve cada tabla, los campos que posee y con que otras tablas tiene relación. Si el lugar donde trabajas es serio, debería tener al menos esa documentación.

Si no, por lo general siempre existe alguien que sabe bastante sobre las tablas de la bd, avocate con él y preguntale sobre las tablas que podrías utilizar para obtener la información que tu jefe necesita.

Si las tablas son muy grandes, es posible que ni siquiera se encuentren bajo un modelo relacional, por motivos de rendimiento. En este caso, no existiran FKs ni siquiera PKs, así que debes tomarlo en cuenta al momento de buscar las relaciones entre tablas.

Por último, revisa los indices de dichas tablas, y haz los joins de modo que siempre se utilice algún indice, evita los full scan o la consulta que obtendrás tardará mucho tiempo para mostrar los resultados. Para ello puedes revisar el "query plan" que utilizará el dbms para obtener los datos.

Cualquier duda, pregunta, quizá te podamos ayudar.

Saludos
 
#7
Mira hermano bakuno, espero te sirva este video. Si no conoces la información de la base de datos, puedes crear un diagrama y ver los PK con una herramienta de microsoft llamada Visio. Supongo que por estos lares podrás encontrar la herramienta.


Saludos
 
Última edición por un moderador:
Arriba