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

Откуда:
Сообщений: 4439
Попытка
Соединение=СоздатьОбъект("ADODB.Connection");
НаборЗаписей=СоздатьОбъект("ADODB.Recordset");
Исключение
Предупреждение("Сервис временно недоступен. Обратитесь в информационный отдел");
Возврат;
КонецПопытки;
Состояние("Соединение с сервером базы данных");
ConnectionString = "driver={SQL Server}; server=***; uid=***;pwd=***; Database = inetreadyonly";
try
Соединение.ConnectionTimeout = 15;
Соединение.CursorLocation= 3;
Соединение.Open(ConnectionString);
except
Предупреждение("Невозможно установить соединение");
Возврат;
endtry;

Состояние("Определение параметров входа");
Cmd = СоздатьОбъект("ADODB.Command");
Cmd.ActiveConnection = Соединение;
//Cmd.CommandTimeout = 100;
//Если верхнюю строку комментирую, падает по
// таймауту, если не комментирую висит наглухо
SQLBeginDate = "'"+ДатаГод(НачДата)+"-"+ДатаМесяц(НачДата)+"-"+ДатаЧисло(НачДата)+"'";
SQLEndDate = "'"+ДатаГод(КонДата)+"-"+ДатаМесяц(КонДата)+"-"+ДатаЧисло(КонДата)+"'";
SelectText = "SELECT ClientIP,ClientUserName,LogDate,ByteSsent, Uri, ObjectSource, Action FROM WebProxyLog where (LogDate >="+SQLBeginDate+" and LogDate <="+SQLEndDate;//+")";
Если ПустоеЗначение(ВыбСотрудник) = 0 Тогда
SQLIP = "'"+СокрЛП(ВыбСотрудник.АЙПИ)+"'";
SelectText = SelectText + " and ClientIP ="+SQLIP+")";
Иначе
SelectText = SelectText + ")";
КонецЕсли;
Cmd.CommandText = SelectText;
Состояние("Выполнение запроса");
Rs = CreateObject("ADODB.RecordSet");
Rs = Cmd.Execute; //Выполнение и получение
//набора данных. Вот на этой строке виснет,
// выполнение запроса в Квари Аналайзере около
//около 5 минут. В таблице 6 миллионов строк.
//застрелился


С Уважением ToRas
Автоподпись арендована у kkv
27 окт 05, 11:03    [2011120]     Ответить | Цитировать Сообщить модератору
 Re: 1C + SQL + ADO = ад  [new]
Glory
Member

Откуда:
Сообщений: 104760
//Выполнение и получение
//набора данных. Вот на этой строке виснет,
// выполнение запроса в Квари Аналайзере около
//около 5 минут. В таблице 6 миллионов строк.
//застрелился

Что такое план выполнения запроса знаете ?
Ну так вот начать разбор полетов надо с него.
27 окт 05, 11:06    [2011140]     Ответить | Цитировать Сообщить модератору
 Re: 1C + SQL + ADO = ад  [new]
Олег Щербина
Member

Откуда: Ставрополь, Россия
Сообщений: 45
Сделайте куб MS OLAP и делайте выборку по нему тем же ADO, на том же 1С, только с провайдером MSOLAP и наслаждайтесь.

1С+SQL AS+ADO=счастье (даже 1С не помешает)

Хотя такими запросами с большим интервалом дат Вы можете надолго загрузить людого поставщика данных.
А что если он Вам вернет несколько миллионов строк???
27 окт 05, 11:33    [2011321]     Ответить | Цитировать Сообщить модератору
 Re: 1C + SQL + ADO = ад  [new]
ToRas
Member

Откуда:
Сообщений: 4439
Что такое план я знаю :). Вопрос не по оптимизации запроса , не по построению индексов, а почему "барахлит" АДО. Если не в тот форум запостил сорри.

С Уважением ToRas
Автоподпись арендована у kkv
27 окт 05, 11:33    [2011323]     Ответить | Цитировать Сообщить модератору
 Re: 1C + SQL + ADO = ад  [new]
ToRas
Member

Откуда:
Сообщений: 4439
Олег Щербина
Сделайте куб MS OLAP и делайте выборку по нему тем же ADO, на том же 1С, только с провайдером MSOLAP и наслаждайтесь.

1С+SQL AS+ADO=счастье (даже 1С не помешает)

Хотя такими запросами с большим интервалом дат Вы можете надолго загрузить людого поставщика данных.
А что если он Вам вернет несколько миллионов строк???


Пасип. :)
27 окт 05, 11:38    [2011359]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить