Eu uso o MSSQL MS para a maioria das tarefas administrativas nos bancos de dados do SQL Server 2008 R2, mas acho que usar o Access (via ADP, não tabelas vinculadas) para exibir e editar dados brutos da tabela é muito mais eficiente. (Isto é para uso de sysadmin apenas, é claro, o acesso do usuário é através de um aplicativo da web, e as tabelas em questão são relativamente pequenas, talvez algumas milhares de linhas.)
No entanto, desde a mudança para o Access 2010, o desempenho tanked ao filtrar e ordenar tabelas em um ADP, e observá-lo via Profiler, eu sei porque - Access não é apenas não preparando uma cláusula WHERE
para o MSSQL implementar os filtros, está solicitando a tabela bruta várias vezes, independentemente de quais filtros estão no lugar. Em outras palavras, faz algo assim:
SET ROWCOUNT 10000
SELECT "dbo"."MYTABLE".* FROM "dbo"."MYTABLE"
SET ROWCOUNT 0
SELECT "dbo"."MYTABLE".* FROM "dbo"."MYTABLE"
SET ROWCOUNT 10000
SELECT "dbo"."MYTABLE".* FROM "dbo"."MYTABLE"
SET ROWCOUNT 0
SELECT "dbo"."MYTABLE".* FROM "dbo"."MYTABLE"
(deixei de fora algumas instruções extras onde está lendo as propriedades da coluna estendida.)
O que diabos o Access está fazendo aqui, e como posso fazê-lo usar o SQL Server para realizar a filtragem e a classificação, e não fazer várias viagens toda vez que os filtros da tabela forem alterados?