Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[GDD]Preguntas teóricas
Autor Mensaje
Sr.Elefanto Sin conexión
Empleado de Fotocopiadora
Volviendo
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 40
Agradecimientos dados: 62
Agradecimientos: 4 en 4 posts
Registro en: Feb 2015
Mensaje: #1
[GDD]Preguntas teóricas Ejercicios Gestión de Datos
Buenas, estoy haciendo GDD, habiendo aprobado la practica solo me falta la teoría y la di mal dos veces ya, este es mi ultimo tiro cry. Buscando encontré estas dos preguntas:

1- Explique al menos 1 escenario en donde no seria adecuado usar sobre una tabla un índice de árbol B+
2- Si se sabe de antemano que hay 1 millon de registros en una tabla T, y que el minimo valor de una columna c de la tabla T es 1, siendo el dominio de c integer, y ademas se sabe que esta indexado sobre esa columna con un indice NON-CLUSTERED, con un árbol B.
Responda si el siguiente query select * from T where c >= 1, utiliza dicho índice para calcular el resultado. Justificar respuesta.

Alguno me puede dar una mano con las respuestas?

Mil gracias!
Otros adjuntos en este tema
.jpg  SQL_ExecutionPlan.JPG ( 49,95 KB / 407) por Martin.

[Imagen: berserk-gif-10.gif]
(Este mensaje fue modificado por última vez en: 22-11-2017 20:18 por Sr.Elefanto.)
22-11-2017 20:17
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
chrisgel15 Sin conexión
Profesor del Modulo A
De Racing, Vago y Atorrante
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 264
Agradecimientos dados: 448
Agradecimientos: 139 en 69 posts
Registro en: Jul 2010
Facebook
Mensaje: #2
RE: [GDD]Preguntas teóricas
Hola como va?

Por casualidad las sacaste del examen 24/6/17 ?

Porque fueron las mismas que me tomaron a mi ese dia.

Yo en la teoría saqué 6, pero no estoy seguro de lo que puse.

La 1 la hice mal, pero tampoco estoy del todo seguro de haber hecho la 2 bien (aunque aprobé).

Esta fue mi respuesta textual que envié por mail:

2) Utiliza dicho indice para calcular el resultado?

NO. Ya que se está obteniendo el resultado de toda la tabla, utiliza directamente un escaneo sobre la misma.
22-11-2017 20:37
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] chrisgel15 recibio 1 Gracias por este post
Sr.Elefanto (22-11-2017)
Sr.Elefanto Sin conexión
Empleado de Fotocopiadora
Volviendo
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 40
Agradecimientos dados: 62
Agradecimientos: 4 en 4 posts
Registro en: Feb 2015
Mensaje: #3
RE: [GDD]Preguntas teóricas
Si, es ese parcial. Muchísimas gracias por la respuesta!

[Imagen: berserk-gif-10.gif]
22-11-2017 20:40
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Omnipresent Sin conexión
Profesor del Modulo A
The Winter is Coming...
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 215
Agradecimientos dados: 51
Agradecimientos: 117 en 64 posts
Registro en: Sep 2014
Mensaje: #4
RE: [GDD]Preguntas teóricas
Mmm el 1 ni idea.

Para mi en el 2) sí, se utiliza el índice. Porque en la claúsula del "where" se consulta por una columna que se encuentra en el índice. (Véase aquí)
De todas maneras, luego se tiene que acceder a la tabla para obtener los demás campos que no se encuentran indexados.
22-11-2017 20:58
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Omnipresent recibio 1 Gracias por este post
Sr.Elefanto (22-11-2017)
chrisgel15 Sin conexión
Profesor del Modulo A
De Racing, Vago y Atorrante
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 264
Agradecimientos dados: 448
Agradecimientos: 139 en 69 posts
Registro en: Jul 2010
Facebook
Mensaje: #5
RE: [GDD]Preguntas teóricas
Omnipresent

Segun entiendo y por lo que respondi en ese parcial, antes de elegir que metodo se va a usar, el motor analiza la situacion para ver si utiliza el indice o no. Como el minimo valor de esa columna es "1" y está devolviendo los registros con esa columna con valor "mayor o igual a 1", no tiene que filtrar nada, se devuelven todos los registros (un millon en este caso)

Acerca de eso podes leer:

https://docs.microsoft.com/en-us/sql/rel...-described

" However, a table scan could be the most efficient method if, for example, the result set of the query is a high percentage of rows from the table..."

Y aca

https://technet.microsoft.com/en-us/libr...l.80).aspx

"My tests show that a table scan often starts to perform better than a nonclustered index access when at least 10 percent of the rows are selected."

Creo que un poco el truco o la trampa del ejercicio tiene que ver con eso, que a pesar de haber un indice, como se seleccionan todos los registros, el motor no lo utiliza.

Saludos
22-11-2017 21:43
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] chrisgel15 recibio 1 Gracias por este post
Sr.Elefanto (22-11-2017)
Camper Sin conexión
Campeon del cubo Rubik
Ing, pero a que costo
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 198
Agradecimientos dados: 122
Agradecimientos: 178 en 55 posts
Registro en: May 2014
Mensaje: #6
RE: [GDD]Preguntas teóricas
Si la diste mal 2 veces, porque te queda solo un "tiro"? Son 4 las chances

23-11-2017 16:00
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Sr.Elefanto Sin conexión
Empleado de Fotocopiadora
Volviendo
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 40
Agradecimientos dados: 62
Agradecimientos: 4 en 4 posts
Registro en: Feb 2015
Mensaje: #7
RE: [GDD]Preguntas teóricas
Combinó práctica y teoría en 1 parcial que tiene 2 recus. Ya di mal 2 veces, me queda 1

[Imagen: berserk-gif-10.gif]
23-11-2017 21:15
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Martin. Sin conexión
Presidente del CEIT
Enjoy it !
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.379
Agradecimientos dados: 88
Agradecimientos: 296 en 137 posts
Registro en: Oct 2011
Mensaje: #8
RE: [GDD]Preguntas teóricas
Mira...
Simulé 1 millon de registros en una tabla con un indice No Clusterizado en un motor de SQL Server. Al analizar el plan de ejecución, observamos que utiliza el indice.

[Imagen: hkPHXm]

Al ver un indice por esa columna, el motor entiende que es lo mejor ya que evita hacer un escaneo de tabla preguntando si el registro es mayor o igual al valor.


Archivo(s) adjuntos Imagen(es)
   

[Imagen: jQJfyBGh9SOmZ.png]
(Este mensaje fue modificado por última vez en: 23-11-2017 22:46 por Martin..)
23-11-2017 22:43
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
chrisgel15 Sin conexión
Profesor del Modulo A
De Racing, Vago y Atorrante
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 264
Agradecimientos dados: 448
Agradecimientos: 139 en 69 posts
Registro en: Jul 2010
Facebook
Mensaje: #9
RE: [GDD]Preguntas teóricas
Martin.

simulaste que el menor valor de la columna sea justamente 1 en esa tabla?

Me llama la atención que esté incorrecto porque creo fue el punto que me pusieron bien.

Saludos
23-11-2017 22:54
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Omnipresent Sin conexión
Profesor del Modulo A
The Winter is Coming...
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 215
Agradecimientos dados: 51
Agradecimientos: 117 en 64 posts
Registro en: Sep 2014
Mensaje: #10
RE: [GDD]Preguntas teóricas
Hello!

Hoy le pregunté al profesor que tomó estas preguntas y me compartió las respuestas:

1) Un caso simple en el cual no sería adecuado utilizar un índice/árbol es al aplicarlo sobre un campo sobre el cual nunca se va a hacer una búsqueda.

2) Como dijo chrisgel15, la respuesta es que hace un escaneo directo sobre la tabla. La razón es porque el motor emplea estadísticas (cuál es el mayor id, el menor id, la cant de elementos de la tabla, etc) y con dichas estadísticas se "da cuenta" que la consulta va requerir la mayor cantidad de elementos de la tabla. Por eso hace un scaneo directo sobre ella y no pasa por el índice, ya que es más performante hacer un barrido secuencial de la tabla que ir al árbol. Si la consigna hubiese dicho c >= x (siendo x otro número que no sea el mínimo) habría que analizar el caso.

También comentó que la razón por la que consulta de Martin. entró por el índice puede ser por el hecho de que no tiene configuradas las estadísticas, por ejemplo. Pero la respuesta se mantiene.

Saludos!
26-11-2017 03:07
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Martin. Sin conexión
Presidente del CEIT
Enjoy it !
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.379
Agradecimientos dados: 88
Agradecimientos: 296 en 137 posts
Registro en: Oct 2011
Mensaje: #11
RE: [GDD]Preguntas teóricas
Hilando muy fino, sí. La respuesta es que luego de muchas ejecución el motor almacena estadísticas e infiere que es mejor no usar el indice.
Ahora bien... decir que lo usa porque así lo determina el motor también es válida. Teniendo en cuenta que en la cursada NUNCA le explican a los alumnos como funciona por atrás la base de datos y como determina la mejor forma de hacer las consultas.

A fin de cuentas, una u otra es correcta, pero el que decide eso es el profesor.

Saludos,

[Imagen: jQJfyBGh9SOmZ.png]
26-11-2017 16:52
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
chrisgel15 Sin conexión
Profesor del Modulo A
De Racing, Vago y Atorrante
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 264
Agradecimientos dados: 448
Agradecimientos: 139 en 69 posts
Registro en: Jul 2010
Facebook
Mensaje: #12
RE: [GDD]Preguntas teóricas
Buenisimo Omnipresent !!

A lacquaniti le preguntaste?

Fue el que me tomó esos puntos, se la puso a la mayoria (sobretodo con el 1). Por suerte yo zafé con la respuesta del 2.
26-11-2017 21:32
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Omnipresent Sin conexión
Profesor del Modulo A
The Winter is Coming...
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 215
Agradecimientos dados: 51
Agradecimientos: 117 en 64 posts
Registro en: Sep 2014
Mensaje: #13
RE: [GDD]Preguntas teóricas
(26-11-2017 21:32)chrisgel15 escribió:  Buenisimo Omnipresent !!

A lacquaniti le preguntaste?

Fue el que me tomó esos puntos, se la puso a la mayoria (sobretodo con el 1). Por suerte yo zafé con la respuesta del 2.

Sisi, a Lacquaniti le pregunté thumbup3
26-11-2017 22:41
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Omnipresent recibio 1 Gracias por este post
chrisgel15 (26-11-2017)
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)