我有一个sql查询从视图中只提取一条记录。我的观点是由许多功能组成的。它正在返回大约60,000条记录。 我想从这个视图中获取的最高记录需要8-9秒。 我如何优化我的视图,以便最多需要1-2秒。 这里是我的看法和sql查询。请帮忙!任何建议都是可观的。提前致谢。提高从查看提取查询数据的性能
CREATE View dbo.OMOrderPrePaymentINT
As
select
dbo.int_payment_customer_number_out('','OMOrderPaymentMasterINT',payment_id)
as customer_number,
dbo.int_customer_name_out('','OMOrderPaymentMasterINT',payment_id)
as customer_name,
dbo.int_FormatDate('','OMOrderPaymentMasterINT',document_date)
as payment_date,
dbo.int_payment_amount_out('','OMOrderPaymentMasterINT',document_amount)
as payment_amount,
dbo.int_checkbook_id_out('','OMOrderPaymentMasterINT',null)
as checkbook_id,
dbo.int_cheque_number_out('','OMOrderPaymentMasterINT',payment_id)
as cheque_number,
dbo.int_cc_type_out ('','OMOrderPaymentMasterINT',payment_id)
as cc_type,
dbo.int_cc_number_out('','OMOrderPaymentMasterINT',payment_id)
as cc_number,
dbo.int_cc_authcode_out('','OMOrderPaymentMasterINT',payment_id)
as cc_authcode,
dbo.int_ach_account_type_out('','OMOrderPaymentMasterINT',payment_id)
as ach_account_type,
dbo.int_ach_account_number_out('','OMOrderPaymentMasterINT',payment_id)
as ach_account_number,
dbo.int_ach_authcode_out('','OMOrderPaymentMasterINT',payment_id)
as ach_authcode,
dbo.int_expiration_date_out('','OMOrderPaymentMasterINT',payment_id)
as creditcard_expiration_date,
dbo.int_order_payment_type_out('','OMOrderPaymentMasterINT',payment_id)
as payment_type,
dbo.int_payment_method_out('','OMOrderPaymentMasterINT',payment_id)
as payment_method,
dbo.int_erp_payment_action_out('','OMOrderPaymentMasterINT',null)
as [action],
dbo.int_modified_user_id_out('','',null)
as modified_user_id,
'NOT MAPPED'
as void_date,
export_completed
as exportcompleted,
dbo.int_ordergroup_id_out('','OMOrderPaymentMasterINT',payment_id)
as ordergroup_id,
'ECOM'
as USRDEFND1,
dbo.int_ResponseToken_out('','OMOrderPaymentMasterINT',payment_id)
as USRDEFND4,
dbo.int_transaction_id_out('','OMOrderPaymentMasterINT',payment_id)
as USRDEFND5
from PaymentLine
where dbo.int_exportPayment(payment_id) = 1
SQL查询
select top 1 *
from OMOrderPrePaymentINT
where ordergroup_id = '943177C1-50B6-4E7C-A442-BA90CF2A03F6'
order by payment_date desc