Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2000 Forums
 SQL Server Administration (2000)
 full table scan causing performance impact

Author  Topic 

venkath
Posting Yak Master

202 Posts

Posted - 2007-01-03 : 11:18:16
Hi all

This query does a full tables scan of CONTRACT_SITE, ENTITLEMENT, PRODUCT causing performance impact on Production server.


How can i avoid full table scan.



SELECT ENTITLEMENT.ENTITLEMENT_ID AS ENTITLEMENT_ID, 
ENTITLEMENT.ORIGINAL_LTU AS ORIGINAL_LTU,
ENTITLEMENT.STATUS AS STATUS,
ENTITLEMENT.IS_PASSWORDED AS IS_PASSWORDED,
ENTITLEMENT.IS_TRY AS IS_TRY,
ENTITLEMENT.ASSIGNED_LTU AS ASSIGNED_LTU,
ENTITLEMENT.ACTIVATED_LTU AS ACTIVATED_LTU,
ENTITLEMENT.PROD_DESCRIPTION AS PROD_DESCRIPTION,
ENTITLEMENT.DEPLOYMENT_CODE AS DEPLOYMENT_CODE,
ENTITLEMENT.AUTHORIZATION_KEY AS AUTHORIZATION_KEY,
ENTITLEMENT.PRODUCT_LINE AS PRODUCT_LINE,
ENTITLEMENT.EXPIRE_DATE AS EXPIRE_DATE,
ENTITLEMENT.TYPE AS TYPE,
ENTITLEMENT.LICENSE_DURATION AS LICENSE_DURATION,
ENTITLEMENT.DURATION_TYPE_CODE AS DURATION_TYPE_CODE,
ENTITLEMENT.LAC_DISPLAY_OPTION_CODE AS LAC_DISPLAY_OPTION_CODE,
ENTITLEMENT.PRODUCT_FAMILY_CODE AS PRODUCT_FAMILY_CODE,
ENTITLEMENT.ENT_BUNDLE_TYPE_CODE AS ENT_BUNDLE_TYPE_CODE,
ENTITLEMENT.PARENT_ENT_ID AS PARENT_ENT_ID,
ENTITLEMENT.TARGET_TAG AS TARGET_TAG,
ENTITLEMENT.CONTRACT_NUMBER AS CONTRACT_NUMBER,
ENTITLEMENT.ENT_LICENSE_TYPE_CODE AS ENT_LICENSE_TYPE_CODE,
ENTITLEMENT.ENT_SUPPORT_EXPIRE_DATE AS ENT_SUPPORT_EXPIRE_DATE,
ENTITLEMENT.QTY_UOM_CODE AS QTY_UOM_CODE,
CONTRACT_SITE.SITE_PUB_ID AS SITE_PUB_ID,
CONTRACT_SITE.SITE_NAME AS SITE_NAME,
PRODUCT.SKU_NUMBER AS SKU_NUMBER,
PRODUCT.PRODUCT_VERSION AS PRODUCT_VERSION,
PRODUCT.LTU AS PRODUCT_LTU,
PRODUCT.PLATFORM AS PRODUCT_PLATFORM,
PRODUCT.MEDIA AS PRODUCT_MEDIA,
PRODUCT.LANGUAGE AS PRODUCT_LANGUAGE,
PRODUCT.PRODUCT_TYPE AS PRODUCT_TYPE,
PRODUCT.ISV_PROPERTY_ID_1 AS ISV_PROPERTY_ID_1,
PRODUCT.ISV_PROPERTY_ID_2 AS ISV_PROPERTY_ID_2,
PRODUCT.ISV_PROPERTY_ID_3 AS ISV_PROPERTY_ID_3,
PRODUCT.ISV_PROPERTY_ID_4 AS ISV_PROPERTY_ID_4,
PRODUCT.ISV_PROPERTY_ID_5 AS ISV_PROPERTY_ID_5,
PRODUCT.ISV_PROPERTY_ID_6 AS ISV_PROPERTY_ID_6,
PRODUCT.ISV_PROPERTY_ID_7 AS ISV_PROPERTY_ID_7,
PRODUCT.ISV_PROPERTY_ID_8 AS ISV_PROPERTY_ID_8,
PRODUCT.USER_DEFINED_DATA_1 AS USER_DEFINED_DATA_1,
PRODUCT.USER_DEFINED_DATA_10 AS USER_DEFINED_DATA_10,
PRODUCT.USER_DEFINED_DATA_11 AS USER_DEFINED_DATA_11,
PRODUCT.USER_DEFINED_DATA_12 AS USER_DEFINED_DATA_12,
PRODUCT.USER_DEFINED_DATA_13 AS USER_DEFINED_DATA_13,
PRODUCT.USER_DEFINED_DATA_14 AS USER_DEFINED_DATA_14,
PRODUCT.USER_DEFINED_DATA_15 AS USER_DEFINED_DATA_15,
PRODUCT.USER_DEFINED_DATA_2 AS USER_DEFINED_DATA_2,
PRODUCT.USER_DEFINED_DATA_4 AS USER_DEFINED_DATA_4,
PRODUCT.USER_DEFINED_DATA_5 AS USER_DEFINED_DATA_5,
PRODUCT.USER_DEFINED_DATA_6 AS USER_DEFINED_DATA_6,
PRODUCT.USER_DEFINED_DATA_7 AS USER_DEFINED_DATA_7,
PRODUCT.USER_DEFINED_DATA_8 AS USER_DEFINED_DATA_8,
PRODUCT.USER_DEFINED_DATA_9 AS USER_DEFINED_DATA_9,
COMPANY.COMPANY_NAME AS COMPANY_NAME,
COMPANY.ALTERNATE_COMPANY_NAME AS ALTERNATE_COMPANY_NAME,
COMPANY.COMPANY_ID AS COMPANY_ID,
SLDCO_COMPANY.COMPANY_NAME AS SLDCO_COMPANY_NAME,
DELCO_COMPANY.COMPANY_NAME AS DELCO_COMPANY_NAME ,
ENTITLEMENT.ORIGINAL_LTU - ENTITLEMENT.ACTIVATED_LTU AS
AVAILABLE_LTU
FROM
ENTITLEMENT (NOLOCK)
LEFT OUTER JOIN ENT_PARTY (NOLOCK)
ON ENTITLEMENT.ENTITLEMENT_ID = ENT_PARTY.ENTITLEMENT_ID
AND ENT_PARTY.PARTY_ROLE = 'ENDCO'
LEFT OUTER JOIN COMPANY (NOLOCK)
ON ENT_PARTY.PARTY_ID = COMPANY.COMPANY_ID
LEFT OUTER JOIN CONTRACT_PARTY SLDCO_PARTY (NOLOCK)
ON ENTITLEMENT.CONTRACT_ID = SLDCO_PARTY.CONTRACT_ID
AND (SLDCO_PARTY.CONTRACT_PARTY_TYPE_CODE = 'BILL') AND
(SLDCO_PARTY.CONTRACT_SITE_ID = ENTITLEMENT.CONTRACT_SITE_ID OR
SLDCO_PARTY.CONTRACT_SITE_ID IS NULL) AND (SLDCO_PARTY.FAMILY =
ENTITLEMENT.PRODUCT_FAMILY_CODE OR SLDCO_PARTY.FAMILY IS NULL)
LEFT OUTER JOIN COMPANY SLDCO_COMPANY (NOLOCK)
ON SLDCO_PARTY.COMPANY_ID = SLDCO_COMPANY.COMPANY_ID
LEFT OUTER JOIN CONTRACT_PARTY DELCO_PARTY (NOLOCK)
ON ENTITLEMENT.CONTRACT_ID = DELCO_PARTY.CONTRACT_ID
AND (DELCO_PARTY.CONTRACT_PARTY_TYPE_CODE = 'DELCO') AND
(DELCO_PARTY.CONTRACT_SITE_ID = ENTITLEMENT.CONTRACT_SITE_ID OR
DELCO_PARTY.CONTRACT_SITE_ID IS NULL) AND (DELCO_PARTY.FAMILY =
ENTITLEMENT.PRODUCT_FAMILY_CODE OR DELCO_PARTY.FAMILY IS NULL)
LEFT OUTER JOIN COMPANY DELCO_COMPANY (NOLOCK)
ON DELCO_PARTY.COMPANY_ID = DELCO_COMPANY.COMPANY_ID ,
CONTRACT_SITE (NOLOCK) ,
PRODUCT (NOLOCK)
WHERE (ENTITLEMENT.PRODUCT_ID = PRODUCT.PRODUCT_ID)
AND (ENTITLEMENT.CONTRACT_SITE_ID =
CONTRACT_SITE.CONTRACT_SITE_ID)
AND (
(CONTRACT_SITE.SITE_NAME LIKE N'%GNUL%'
AND ENTITLEMENT.STATUS = N'ACTIV'
AND ENTITLEMENT.ENT_LICENSE_TYPE_CODE = N'MNT')
)
order by CONTRACT_NUMBER


Thanks

harsh_athalye
Master Smack Fu Yak Hacker

5581 Posts

Posted - 2007-01-03 : 11:48:50
You didn't mention anything about indexes, table statistics. Also while posting code, please do, at least, basic indentation.
The more you make it easy to know your problem, the more we are willing to help.

Harsh Athalye
India.
"The IMPOSSIBLE is often UNTRIED"
Go to Top of Page
   

- Advertisement -