3

ビューから 1 つのレコードのみを取得する 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  
4

2 に答える 2