Я использую MSSQL MS для большинства административных задач в базах данных SQL Server 2008 R2, но считаю, что использование Access (через ADP, а не связанные таблицы) для просмотра и редактирования необработанных данных таблиц намного эффективнее. (Это только для использования системного администратора, конечно, пользовательский доступ осуществляется через веб-приложение, и таблицы, о которых идет речь, относительно малы, возможно, несколько тысяч строк.)
Однако, так как переход на Access 2010, производительность танком при фильтрации и сортировки таблиц в АДФ, и смотреть его через Profiler, я знаю , почему - доступ не только не готовит WHERE
для MSSQL для реализации фильтров, она просит необработанная таблица несколько раз, независимо от того, какие фильтры установлены. Другими словами, он делает что-то вроде этого:
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"
(Я пропустил несколько дополнительных операторов, где он читает расширенные свойства столбца.)
Какого черта здесь делает Access, и как я могу заставить его использовать SQL Server для выполнения фильтрации и сортировки, чтобы не совершать многократные поездки каждый раз, когда меняются фильтры таблиц?