Pregunta 79

Temas relacionados con el examen de test.
Cerrado
Avatar de Usuario
Orion
Usuario registrado
Mensajes: 284
Registrado: 19 Ene 2009, 11:31
Agradecido: 0
Agradecimiento recibido: 0

Pregunta 79

Mensaje por Orion »

¿Alguien puede corroborar que la respuesta es esa y no la a)?

Gracias.
"When a girl says she needs two minutes to get ready, that's the same thing as when a guy says there's two minutes left in the football game. That's relativity."

MAT
Usuario registrado
Mensajes: 22
Registrado: 12 May 2008, 22:56
Agradecido: 0
Agradecimiento recibido: 0

Re: Pregunta 79

Mensaje por MAT »

Esta pregunta está hecha con muy mala leche, como el resto del examen que no solo era complicado sino que también pretendía confundir.

La respuesta no es la (a) porque en bases de datos con poco contenido no supone ninguna ventaja el hacer un mayor número de indices. Por otro lado la opción (d) es correcta: Si están todos los campos del select en el indice no se necesita acceder a la tabla.

nachohr
Usuario registrado
Mensajes: 298
Registrado: 18 Mar 2009, 19:05
Agradecido: 0
Agradecimiento recibido: 0

Re: Pregunta 79

Mensaje por nachohr »

Deberiamos poner siempre la pregunta (copy-paste) si no es muy dificil el seguimiento y la opinion

En una tabla de una base de datos relacional:
a La definición de un mayor número de índices siempre supone mejora en el rendimiento de las operaciones de consulta.
b La definición de un mayor número de índices siempre mejora el rendimiento de las operaciones de inserción.
c Nunca deben incluirse en los índices atributos que no forman parte de la cláusula WHERE.
d Si las filas de un índice contienen todas las columnas referenciadas en el SELECT, se elimina la necesidad de acceder a
la tabla.

Yo tambien puse la A

madtxl
Usuario registrado
Mensajes: 27
Registrado: 01 Abr 2009, 08:13
Agradecido: 0
Agradecimiento recibido: 0

Re: Pregunta 79

Mensaje por madtxl »

¿Y si la consulta lleva condiciones en el WHERE que no se pueden evaluar según el índice? Yo también puse la A. No la puse muy convencido, pero desde luego, la D la descarté desde el principio.

Avatar de Usuario
luke2
Usuario registrado
Mensajes: 142
Registrado: 16 Mar 2008, 17:42
Agradecido: 0
Agradecimiento recibido: 0

Re: Pregunta 79

Mensaje por luke2 »

Efectivamente, la clave está en la palabra "siempre". Si la tabla es pequeña es más eficiente hacer un full table scan que consultar un índice.

cantimploro
PreparaTIC XXI
Mensajes: 1010
Registrado: 20 Jul 2010, 09:09
Agradecido: 0
Agradecimiento recibido: 0

Re: Pregunta 79

Mensaje por cantimploro »

Yo lo de la D lo había leido ya, en documentación de Microsoft SQL Server por lo que no sabía si era una característica de SQL Server o algo habitual en todas las implementaciones de SQL. En cualquier caso como eso me sonaba y las preguntas con "siempre" me sonaban sospechosas, tiré por ahí y esta vez acerté... lástima de otras 20 preguntas donde me tiré por la que no era ;)

RACHEL
Usuario registrado
Mensajes: 262
Registrado: 02 Dic 2009, 11:38
Agradecido: 0
Agradecimiento recibido: 0

Re: Pregunta 79

Mensaje por RACHEL »

sí, yo también las preguntas con el término "siempre" me resultan sospechosas, pero yo no tuve suerte, me decanté por la c) :)

JAHerguera
Usuario registrado
Mensajes: 85
Registrado: 01 Jul 2008, 14:18
Agradecido: 0
Agradecimiento recibido: 0

Re: Pregunta 79

Mensaje por JAHerguera »

madtxl escribió:¿Y si la consulta lleva condiciones en el WHERE que no se pueden evaluar según el índice? Yo también puse la A. No la puse muy convencido, pero desde luego, la D la descarté desde el principio.
Ostras... un resquicio (yo también piqué con la A).
Que no es lo mismo un SELECT que un SELECT con cláusulas en el WHERE, ojito.
¿Alguna idea para seguir por este camino e impugnar?
"Was mich nicht umbringt macht mich stärker"
Friedrich Wilhelm Nietzsche. Sprüche und Pfeile, 8. Götzen-Dämmerung

Walia
Usuario registrado
Mensajes: 275
Registrado: 31 May 2010, 14:23
Agradecido: 0
Agradecimiento recibido: 0

Re: Pregunta 79

Mensaje por Walia »

RACHEL escribió:sí, yo también las preguntas con el término "siempre" me resultan sospechosas, pero yo no tuve suerte, me decanté por la c) :)
A ver si esto vale, por la cuenta que me trae.

En la respuesta d) no se incluye la palabra siempre, pero sin embargo es una frase taxativa. Dice que:

Si las filas de un índice contienen todas las columnas referenciadas en el SELECT, se elimina la necesidad de acceder a la tabla.

Quiere decir esto que en ningún caso hará falta acceder a la tabla.

He encontrado casos en que puede que valga la pena acceder a la tabla, aunque no sea completamente necesario. Por ejemplo, puede que sea más eficiente acceder al campo con el valor del atributo que descifrarlo del índice generado (por ejemplo que el índice sea una función encriptada del campo/atributo en cuestión).

PERO LA CLAVE es que hay casos también en los que, aunque el índice contenga información de "todas las columnas" no esté contenida "TODA la información de TODAS las columnas". Me explico
Por ejemplo, si el elemento en cuestión es el Nombre_y_Apellidos, se puede generar un índice con las iniciales del Nombre y cada uno de los dos apellidos. En este caso sería un índice, pero al tener, por ejemplo, ATH en el índice, deberíamos acceder a la columna para conocer el nombre completo, por ejemplo "Antonio Torres Heredia".
Otro caso común es que el índice contenga la semántica de ordenación, pero no la semántica total. Por ejemplo, el índice podría ser MAYUSCULAS(Apellido), con lo que tendríamos "TORRES" en el índice, pero deberíamos acceder a la columna para encontrar "Torres" que es la correcta.

No sé si me explico. Yo la D) la descarté desde el primer momento.
P.D. Por otro lado, la B) no es correcta a todas luces. La C) no llegué a entenderla. Y la A) me pareció correcta a todas luces. Vamos, que es para eso que se han inventado los índices. Cierto es que el "siempre" nos j... la opción, pero creo que se puede salvar esta pregunta (o sease, conseguir anularla).
No tengo ni iPod, ni iPhone, ni iPad. Básicamente porque no iDinero

dsmc
Usuario registrado
Mensajes: 1
Registrado: 26 Dic 2009, 19:56
Agradecido: 0
Agradecimiento recibido: 0

Re: Pregunta 79

Mensaje por dsmc »

d Si las filas de un índice contienen todas las columnas referenciadas en el SELECT, se elimina la necesidad de acceder a
la tabla.
Creo que está claro que no siempre que todas las columnas referenciadas en un SELECT estén contenidas en un índice, se elimina la necesidad de acceder a la tabla. Aún sería necesario acceder a la tabla de datos si las condiciones del WHERE utilizan otras columnas, si el tipo de índice utilizado no almacena los valores de las columnas que contienen (Hash, spatial, full-text), o simplemente si la implementación del motor de almacenamiento lo requiere en cualquier caso...

Pero creo que podían querer decir es que "ya no siempre es necesario" acceder a la tabla.

cantimploro
PreparaTIC XXI
Mensajes: 1010
Registrado: 20 Jul 2010, 09:09
Agradecido: 0
Agradecimiento recibido: 0

Re: Pregunta 79

Mensaje por cantimploro »

Como "ya no siempre es necesario" es como yo lo interpreté...

Cerrado

Volver a “PRIMER EXAMEN 2010”