У меня есть конкретный оператор SQL, который занимает около 30 секунд, и мне интересно, может ли кто-нибудь увидеть проблему с ним или где мне нужна дополнительная индексация.Медленный код SQL на локальном сервере в MS Access
Код находится в подформе в Access, где показаны результаты, зависящие от содержимого пяти полей в основной форме. В таблице запрашивается около 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 & "*");
");
EDIT
Захват вверх, кажется, в который формирует запрос 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? Если это так, это определенно меняет виды ответов, которые вам нужны. – 2008-11-14 04:46:46
Я прочитал весь поток, и я до сих пор не знаю, является ли это ADP-> SQL Server или MDB-> ODBC-> SQL Server. – 2008-11-14 04:53:42
, пожалуйста, сразу отвечайте на вопрос Дэвида – 2010-10-26 16:15:11