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

Откуда:
Сообщений: 2661
Скажите пожалуйста,

делаю такой запрос

автор
SELECT TOP(2600) ууу from OPENQUERY(ййй,'select * from ффф') a


отрабатывает нормально

если убираю TOP, пишет

автор
Поставщик OLE DB "MSDASQL" для связанного сервера "ййй" вернул сообщение "[MySQL][ODBC 3.51 Driver][mysqld-5.0.67]MySQL client ran out of memory".


мне надо 100 percent

Что с этим делать?

Заранее благодарен.
14 май 14, 12:51    [16014852]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37050
Выбирать порциями, если драйвер для MySQL такой прожорливый.
14 май 14, 12:56    [16014902]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер  [new]
vah
Member

Откуда:
Сообщений: 2661
Гавриленко Сергей Алексеевич,

к сожалению в OPENQUERY нельзя использовать переменные ((
поэтому порциями не получится (((
14 май 14, 14:17    [16015519]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер  [new]
Glory
Member

Откуда:
Сообщений: 104760
vah
к сожалению в OPENQUERY нельзя использовать переменные ((
поэтому порциями не получится (((

Из первого не следует второе
14 май 14, 14:33    [16015644]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер  [new]
vah
Member

Откуда:
Сообщений: 2661
Glory,

намекаете на динамический запрос?
14 май 14, 14:45    [16015755]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер  [new]
anonimous484
Guest
А зачем из MySQL выбирать все поля, когда требуется в итоге только одно? Может по одному полю памяти хватит?
14 май 14, 16:09    [16016507]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер  [new]
vah
Member

Откуда:
Сообщений: 2661
Гавриленко Сергей Алексеевич,

а как чистить память [MySQL][ODBC 3.51 Driver][mysqld-5.0.67]MySQL
при выгрузке порциями в цикле?
14 май 14, 16:10    [16016518]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37050
vah
Гавриленко Сергей Алексеевич,

а как чистить память [MySQL][ODBC 3.51 Driver][mysqld-5.0.67]MySQL
при выгрузке порциями в цикле?
А почему вы решили, что ее надо чистить?
14 май 14, 16:11    [16016526]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер  [new]
vah
Member

Откуда:
Сообщений: 2661
anonimous484,

в итоге я выбираю только 3 поля, но и на них не хватает ((

как можно чистить память от этого драйвера, если я выгружаю в цикле частями?
14 май 14, 16:12    [16016527]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37050
vah
anonimous484,

в итоге я выбираю только 3 поля, но и на них не хватает ((

как можно чистить память от этого драйвера, если я выгружаю в цикле частями?
Если у вас в ведро не влезает 100 литров воды, это не означает, что влезший туда один литр там остается навсегда.
14 май 14, 16:14    [16016535]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер  [new]
vah
Member

Откуда:
Сообщений: 2661
Гавриленко Сергей Алексеевич,

DECLARE @sql varchar(2000)
DECLARE @maxCount INT
DECLARE @topRow INT
DECLARE @a INT, @b INT  

DELETE ддд..ыыы

SELECT @maxCount=c from OPENQUERY(ййй,
'select count(*)c from ыыы'
) a 
SET @topRow=1

WHILE @topRow<=@maxCount
BEGIN
SET @a=@topRow
SET @b=@topRow+100
SET @sql='
select  * from ыыы LIMIT '+ltrim(STR(@a))+','+ltrim(STR(@b))+'
'
INSERT INTO ддд..ыыы(а, б, в)
exec('SELECT а, б, в from OPENQUERY(ййй,'''+@sql+''') a')

SET @topRow=@topRow+100
END



в этом случае после 3000 записей выдает
автор
Поставщик OLE DB "MSDASQL" для связанного сервера "ARC_SYNC" вернул сообщение "[MySQL][ODBC 3.51 Driver][mysqld-5.0.67]MySQL client ran out of memory".


Сообщение было отредактировано: 14 май 14, 16:24
14 май 14, 16:16    [16016554]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер  [new]
anonimous484
Guest
Так тоже не взлетает?

declare @t table (ID int primary key)

insert into @t (ID) 
select ID
from openquery([LINKED],'select id from [table]') t

select * from @t
14 май 14, 16:17    [16016559]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер  [new]
vah
Member

Откуда:
Сообщений: 2661
anonimous484,

не взлетает
14 май 14, 16:30    [16016635]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер  [new]
anonimous484
Guest
А тип выбираемых полей какой? Может у вас там после 3000 строки гигабайты данных выбираются?
Если в вашем порционном скрипте начало выборки сделать не с 1 строки, а с 3000, падает тоже после 3000 записей?
14 май 14, 16:32    [16016643]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер  [new]
anonimous484
Guest
Вообще это тема для форума MySQL.
говорят помогает в строке подключения ODBC указать: OPTION=FLAG_NO_CACHE
14 май 14, 16:38    [16016670]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер  [new]
vah
Member

Откуда:
Сообщений: 2661
anonimous484,

проблема была в неправильном использовании LIMIT )

спс

заработало
14 май 14, 16:54    [16016769]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить