Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Проблема SQL Server 2008 R2(x64) и access2003  [new]
stek
Member

Откуда:
Сообщений: 3
Привет!
На новый сервак установили SQL Server 2008 R2(x64). Перенесли базы с SQL Server 2005 (x86). С базой работаем через Access 2003.
Но при открытии базы под любой учеткой, кроме sa,зависает Access 2003 примерно на 40 сек. Потом все нормально зарабатывает. Это происходит именно при открытии после того, как зашли под той или иной учеткой. Аутентификацию он проходит, но такое ощущение, что зависает на авторизации. При этом sqlserver загружает ЦП сервака до 50%. Раньше такого не было на SQL Server 2005 (x86). Все быстро 1-3 сек. Статистику обновил, переиндексировал, все находится там где должно быть, и запросы на SQL Server 2008 R2(x64) работают быстрее, чем на SQL Server 2005 (x86). Не понятно почему так происходит при открытии?
4 фев 13, 11:56    [13871303]     Ответить | Цитировать Сообщить модератору
 Re: Проблема SQL Server 2008 R2(x64) и access2003  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35078
Блог
stek,

гуглите Profiler
4 фев 13, 12:09    [13871411]     Ответить | Цитировать Сообщить модератору
 Re: Проблема SQL Server 2008 R2(x64) и access2003  [new]
Glory
Member

Откуда:
Сообщений: 104751
stek
Аутентификацию он проходит, но такое ощущение, что зависает на авторизации. При этом sqlserver загружает ЦП сервака до 50%.

Аутентификация то какая ?
4 фев 13, 12:12    [13871427]     Ответить | Цитировать Сообщить модератору
 Re: Проблема SQL Server 2008 R2(x64) и access2003  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
stek,

Нужно конечно глянуть логи сервера, но тут скорее всего проблемы драйвера ODBC (или что у вас используется). Если это так, то в ветке Access вам быстрее помогут.

Как вариант, при запуске приложения у вас выполняется какой-то запрос и выполняется долго, отловить его можно с помощью Profiler.
4 фев 13, 12:17    [13871473]     Ответить | Цитировать Сообщить модератору
 Re: Проблема SQL Server 2008 R2(x64) и access2003  [new]
stek
Member

Откуда:
Сообщений: 3
Выяснили через Profiler, что долго выполняется системный запрос под разной учеткой:
select object_name(id), user_name(uid), type, ObjectProperty(id, N'IsMSShipped') from sysobjects where type in (N'U', N'S',N'v') and permissions(id) & 4096 <> 0 . То есть причина в этом, а конкретно в части ...permissions(id) & 4096 <> 0
Этот запрос в sql server 2005 выполняется за 0-1 сек. Непонятно как это исправить.
8 фев 13, 18:02    [13899505]     Ответить | Цитировать Сообщить модератору
 Re: Проблема SQL Server 2008 R2(x64) и access2003  [new]
aleks2
Guest
1.
PERMISSIONS (Transact-SQL) 
Important This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Use fn_my_permissions instead

Вряд ли это спасет.

2.
type char(2) 
нахера type in (N'U', N'S',N'v'). Типо "мы крутые"?
А сервер тупой. Возмет и конвертнет type к nvarchar... сдуру.

3. type in заменить на UNION ALL.
9 фев 13, 07:15    [13901693]     Ответить | Цитировать Сообщить модератору
 Re: Проблема SQL Server 2008 R2(x64) и access2003  [new]
aleks2
Guest
Не, все вышесказанное - не суть.

declare @d datetime;
set @d=getdate();
select permissions(id), 
object_name(id), 
user_name(uid), 
type
, ObjectProperty(id, N'IsMSShipped') 
from sysobjects where type in (N'U', N'S',N'v')-- and permissions(id) & 4096 <> 0
select datediff(ms, @d, getdate());


set @d=getdate();
select --permissions(id), 
--object_name(id), 
uid, 
type
--, ObjectProperty(id, N'IsMSShipped') 
from sysobjects where type in (N'U', N'S',N'v')-- and permissions(id) & 4096 <> 0
select datediff(ms, @d, getdate());


SQL 2008
250мс
3мс

100 (сто) раз разницы. Вызов функции - дело затратное.

SQL 2005
20 мс
3 мс

10 (десять) раз разницы.
9 фев 13, 07:31    [13901695]     Ответить | Цитировать Сообщить модератору
 Re: Проблема SQL Server 2008 R2(x64) и access2003  [new]
П-Л
Guest
aleks2
...3. type in заменить на UNION ALL.
Заменить ничего нельзя. Это все зашито в аксессе. Единственное что можно попробовать - менять виды аутентификации при подключении проекта (если у ТС адп, а не линкованные таблицы). Для линкованных таблиц способ подключения к серверу настраивается при подключении таблицы - придется переподключать.
9 фев 13, 08:41    [13901710]     Ответить | Цитировать Сообщить модератору
 Re: Проблема SQL Server 2008 R2(x64) и access2003  [new]
stek
Member

Откуда:
Сообщений: 3
Если я все правильно понял, то ничего нельзя изменить(это системный запрос и он срабатывает автоматически. Возможно наверное отключить, но разрешение на таблицы и т.п. под разными учетками надо проверять). Проблема в самом sql server 2008 и 2012(там такая же проблема), а не в аксессе. Остаются только непонятной почему в sql server 2005 все нормально работает, отрабатывает быстро, а последующих версиях долго?
11 фев 13, 10:40    [13907137]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить