Qué es SQL minimizado

Cuando utiliza SQL minimizado, el SQL generado contiene sólo el conjunto mínimo de tablas y uniones necesario para obtener valores para los elementos de consulta seleccionados.

Para ver un ejemplo de lo que significar SQL minimizado, puede utilizar las siguientes tablas Product. Cuatro asuntos de consulta están unidos entre sí: Product Line, Product Type, Product y Product Multilingual.

Los cuatro asuntos de consulta unidos entre sí

Se pueden combinar en un asunto de consulta de modelo.

El resultado de la combinación de cuatro asuntos de consulta en un asunto de consulta de modelo Product

Si prueba el asunto de consulta de modelo Product en su totalidad, verá que se hace referencia a las cuatro tablas de la cláusula from de la consulta.

select
	PRODUCT_LINE.PRODUCT_LINE_CODE as Product_Line_Code,
	PRODUCT_LINE.PRODUCT_LINE_EN as Product_Line,
	PRODUCT_TYPE.PRODUCT_TYPE_CODE as Product_Type_Code,
	PRODUCT_TYPE.PRODUCT_TYPE_EN as Product_Type,
	PRODUCT.PRODUCT_NUMBER as Product_Number,
	PRODUCT_MULTILINGUAL.PRODUCT_NAME as Product_Name
	PRODUCT_MULTILINGUAL.DESCRIPTION as Product_Description,
	PRODUCT.INTRODUCTION_DATE as Introduction_Date,
	PRODUCT.PRODUCT_IMAGE as Product_Image,
	PRODUCT.PRODUCTION_COST as Production_Cost,
	PRODUCT.MARGIN as Margin
from
	gosl_82..gosl.PRODUCT_LINE PRODUCT_LINE,
	gosl_82..gosl.PRODUCT_TYPE PRODUCT_TYPE,
	gosl_82..gosl.PRODUCT PRODUCT,
	gosl_82..gosl.PRODUCT_MULTILINGUAL PRODUCT_MULTILINGUAL
where
	(PRODUCT_MULTILINGUAL."LANGUAGE" - N'EN')
 and
	(PRODUCT_LINE.PRODUCT_LINE_CODE = PRODUCT_TYPE.PRODUCT_LINE_CODE)
and
	(PRODUCT_TYPE.PRODUCT_TYPE_CODE = PRODUCT.PRODUCT_TYPE_CODE)
and
	(PRODUCT.PRODUCT_NUMBER = PRODUCT_MULTILINGUAL.PRODUCT_NUMBER

Si sólo prueba Product name, observará que la consulta resultante utiliza sólo Product Multilingual, la tabla que era obligatoria. Este es el efecto del SQL minimizado.

select
	PRODUCT_MULTILINGUAL.PRODUCT_NAME as Product_Name
from
	gosl_82..gosl.PRODUCT_MULTILINGUAL PRODUCT_MULTILINGUAL
where
	(PRODUCT_MULTILINGUAL."LANGUAGE" - N'EN")

Ejemplo: determinar cuándo es importante utilizar SQL minimizado

Si desea modelar un origen de datos normalizado, puede que le interese más usar SQL minimizado porque se reducirá el número de tablas utilizadas en algunas solicitudes y mejorará el rendimiento. En este caso, lo mejor sería crear relaciones y determinantes entre los asuntos de consulta de origen de datos y después crear asuntos de consulta de modelo que no tengan relaciones.

Existe la idea equivocada de que si no existen relaciones entre objetos, no puede crear grupos de esquema en estrella. No es cierto. Seleccione los asuntos de consulta de modelo que se van a incluir en el grupo y utilice el asistente Agrupaciones de esquemas en estrella. O bien, cree atajos y muévalos a un espacio de nombres nuevo. No es necesario que existan atajos a las relaciones; se trata de una característica meramente visual del diagrama. El efecto en la generación y presentación de consultas en las aplicaciones Studio es la misma.

Ejemplo: determinar cuándo SQL minimizado no es tan importante como las consultas predecibles

Es posible que algunos elementos del origen de datos deban resumirse para garantizar que se comporten como si fueran un único objeto de datos. Un ejemplo sería una tabla de seguridad que siempre debe estar unida a un hecho. En el modelo de Ventas de Viaje de aventuras, Encabez. de pedido y Detalles de pedido son conjuntos de tablas que juntos representan un hecho, y usted desea que siempre se consulten conjuntamente. Para ver un ejemplo, consulte: Cómo determinar dónde crear relaciones y determinantes.