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 2005 Forums
 Transact-SQL (2005)
 Query optimization

Author  Topic 

Hnin Hnin
Starting Member

1 Post

Posted - 2008-11-18 : 20:04:47
Hi all,
I have query that one is take long time to run. So I need to optimizie. Anyone can help me to optimize this query.

SELECT max(doc.version),max(fk_document_id) as fk_document_id FROM prosesdoc_index_template_value t, prosesdoc_template_field_type p, prosesdoc_field_value v, prosesdoc_document doc, prosesdoc_storage s, prosesdoc_permission per WHERE (t.fk_template_field_type_id = p.id AND t.fk_template_value_id = v.id AND p.field_value_type_name ='field_value' AND v.field_value = ? AND doc.id=t.fk_document_id AND doc.is_deleted != -1 AND doc.fk_storage_id = ? AND doc.fk_storage_id = s.id AND s.is_archived != 1 AND doc.is_deleted !=99 AND doc.fk_storage_id = per.fk_storage_id AND per.fk_permission_type_id != 0 AND per.fk_user_id = ?) group by t.fk_template_value_id Union SELECT max(doc.version),max(fk_document_id) as fk_document_id FROM prosesdoc_index_template_value t, prosesdoc_template_field_type p, prosesdoc_pre_defined_value d, prosesdoc_document doc, prosesdoc_storage s, prosesdoc_permission per WHERE (t.fk_template_field_type_id = p.id AND t.fk_template_value_id = d.id AND p.field_value_type_name ='pre-defined' AND d.pre_defined_value = ? AND doc.id=t.fk_document_id AND doc.is_deleted != -1 AND doc.fk_storage_id = ? AND doc.fk_storage_id = s.id AND s.is_archived != 1 AND doc.is_deleted !=99 AND doc.fk_storage_id = per.fk_storage_id AND per.fk_permission_type_id != 0 AND per.fk_user_id = ?) group by t.fk_template_value_id Union SELECT max(doc.version),max(fk_document_id) as fk_document_id FROM prosesdoc_index_template_value t, prosesdoc_template_field_type p, prosesdoc_combo_box c, prosesdoc_document doc, prosesdoc_storage s, prosesdoc_permission per WHERE (t.fk_template_field_type_id = p.id AND t.fk_template_value_id = c.id AND p.field_value_type_name ='combo_box' AND c.combo_value = ? AND doc.id=t.fk_document_id AND doc.is_deleted != -1 AND doc.fk_storage_id = ? AND doc.fk_storage_id = s.id AND s.is_archived != 1 AND doc.is_deleted !=99 AND doc.fk_storage_id = per.fk_storage_id AND per.fk_permission_type_id != 0 AND per.fk_user_id = ?) group by t.fk_template_value_id

Thanks in advance
Snow

PeterNeo
Constraint Violating Yak Guru

357 Posts

Posted - 2008-11-19 : 00:42:22
try something like this, if ur's is not In-Line query

SELECT t.fk_template_value_id,
p.field_value_type_name,
MAX(doc.version) AS version,
MAX(fk_document_id) AS fk_document_id
INTO #Temp
FROM prosesdoc_index_template_value t
INNER JOIN prosesdoc_template_field_type p ON t.fk_template_field_type_id = p.id
INNER JOIN prosesdoc_document doc ON doc.id = t.fk_document_id
AND doc.is_deleted <> -1
AND doc.is_deleted <> 99
INNER JOIN prosesdoc_storage s ON doc.fk_storage_id = s.id
AND s.is_archived <> 1
INNER JOIN prosesdoc_permission per ON doc.fk_storage_id = per.fk_storage_id
AND per.fk_permission_type_id != 0
WHERE doc.fk_storage_id = ?
AND per.fk_user_id = ?
AND p.field_value_type_name IN ('field_value', 'pre-defined', 'combo_box')
GROUP BY t.fk_template_value_id, p.field_value_type_name


SELECT version, fk_document_id
FROM #Temp T
INNER JOIN prosesdoc_field_value v ON t.fk_template_value_id = v.id
WHERE T.field_value_type_name ='field_value'
AND v.field_value = ?

UNION

SELECT version, fk_document_id
FROM #Temp T
INNER JOIN prosesdoc_pre_defined_value d ON t.fk_template_value_id = d.id
WHERE T.field_value_type_name ='pre-defined'
AND d.pre_defined_value = ?

UNION

SELECT version, fk_document_id
FROM #Temp T
INNER JOIN prosesdoc_combo_box c ON t.fk_template_value_id = c.id
WHERE T.field_value_type_name ='combo_box'
AND c.combo_value = ?


"There is only one difference between a dream and an aim. A dream requires soundless sleep to see, whereas an aim requires sleepless efforts to achieve..!!"
Go to Top of Page
   

- Advertisement -