수행하는 데 약 30 초가 걸리는 특정 SQL 문을 가지고 있으며 누군가가 문제를 볼 수 있는지 또는 추가 인덱싱이 필요한지 궁금합니다.MS Access의 로컬 서버에서 느린 SQL 코드
코드는 Access의 하위 폼에 있으며 마스터 폼의 5 개 필드 내용에 따라 결과가 표시됩니다. 쿼리되는 테이블에는 약 5000 개의 레코드가 있습니다. Access 프로젝트는 실제 SQL 서버의 터미널 서버 세션에서 저장되고 실행되므로 네트워크 문제라고 생각하지 않습니다. 동일한 유형의 쿼리를 사용하는 매우 유사한 다른 형식이 있습니다 ...
감사
PG
SELECT TabDrawer.DrawerName, TabDrawer.DrawerSortCode, TabDrawer.DrawerAccountNo, TabDrawer.DrawerPostCode, QryAllTransactons.TPCChequeNumber, tabdrawer.drawerref
FROM TabDrawer LEFT JOIN QryAllTransactons ON TabDrawer.DrawerRef=QryAllTransactons.tpcdrawer
WHERE (Forms!FrmSearchCompany!SearchName Is Null
Or [drawername] Like Forms!FrmSearchCompany!SearchName & "*")
And (Forms!FrmSearchCompany.SearchPostcode Is Null
Or [Drawerpostcode] Like Forms!FrmSearchCompany!Searchpostcode & "*")
And (Forms!FrmSearchCompany!SearchSortCode Is Null
Or [drawersortcode] Like Forms!FrmSearchCompany!Searchsortcode & "*")
And (Forms!FrmSearchCompany!Searchaccount Is Null
Or [draweraccountno] Like Forms!FrmSearchCompany!Searchaccount & "*")
And (Forms!FrmSearchCompany!Searchcheque Is Null
Or [tpcchequenumber] Like Forms!FrmSearchCompany!Searchcheque & "*");
");
편집
보류 최대가 될 것으로 보인다 QryAllTransactons 쿼리를 구성하는 통합 쿼리.
SELECT
"TPC" AS Type,
TabTPC.TPCRef,
TabTPC.TPCBranch,
TabTPC.TPCDate,
TabTPC.TPCChequeNumber,
TabTPC.TPCChequeValue,
TabTPC.TPCFee,
TabTPC.TPCAction,
TabTPC.TPCMember,
tabtpc.tpcdrawer,
TabTPC.TPCUser,
TabTPC.TPCDiscount,
tabcustomers.*
FROM
TabTPC
INNER JOIN TabCustomers ON TabTPC.TPCMember = TabCustomers.CustomerID
UNION ALL
SELECT
"CTP" AS Type,
TabCTP.CTPRef,
TabCTP.CTPBranch,
TabCTP.CTPDate,
TabCTP.CTPChequeNumb,
TabCTP.CTPAmount,
TabCTP.CTPFee,
TabCTP.CTPAction,
TabCTP.CTPMember,
0 as CTPXXX,
TabCTP.CTPUser,
TabCTP.CTPDiscount,
TABCUSTOMERS.*
FROM
TabCTP
INNER JOIN TabCustomers ON Tabctp.ctpMember = TabCustomers.CustomerID;
나는
"프로젝트에 액세스하십시오."라고 말합니다. 이것은 ADP입니까? 그렇다면 꼭 필요한 답변의 종류가 바뀝니다. –
전체 스레드를 읽었으며 ADP-> SQL Server 또는 MDB-> ODBC-> SQL Server인지 여부는 여전히 알 수 없습니다. –
david의 질문에 즉시 대답하십시오. –