<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55
global $wpdb2;
global $failure;
global $file_hist;
///// echo '<H2><b>Старт загрузки</b></H2><br>';
$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
///// echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}
$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
///// echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}
/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
///// echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
///// echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist); ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7]; ////получаем размер файла
$m_mtime_file=$masiv_data_file[9]; ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file
///// echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
///// echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
///// echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);
if ($results)
{ foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));
////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
///// echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
///// echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}
////загружаем данные
$table='vin_history'; // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация // (путь от корня web-сервера)
$delim=';'; // Разделитель полей в CSV файле
$enclosed='"'; // Кавычки для содержимого полей
$escaped='\
(0) правда и ДокументОбъект.Автор.Код тоже не самое оптимальное решение, в таком случае рекомендуется запросом получать значение конкретного поля. А то ведь обращение ДокументОбъект.Автор.(ЛюбойРеквизит) приведет к полному чтению данных ссылки «Автор» и помещению в память на какое-то время
Очередная статья и очередной велосипед )
Без обид, методика интересная и имеет право на жизнь.
На мой взгляд, первопричина зависаний и плохой работы программы 1С — неправильное проектирование информационной системы, а потом уже некачественный программный код модулей этой самой 1С.
Оптимизировать программный код можно до опупения, но как правило в 90% есть решение выноса части функционала например на нерабочее время и т.п. в том числе и железячные.
Я конечно 15 лет не изучаю вопросы оптимизации, но загнав tempdb на RAM диск или на SSD если не помещается вы в разы ускорите вашу ситуацию
Поэтому (пишется вместе) в отрыве от реальных событий сложно сказать про данную методику, тем более она на обычных формах.
(2)
Складывается впечатление, что вы стараетесь кого-то обидеть своими комментариями.
Очень мощный сервер может спрятать недостаток опыта плохого программиста, иногда.
Автор молодец, почти воспроизвел APDEX «Оценка производительности» из БСП.
(2)На моем текущем месте работы не только tempdb, но и все рабочие базы расположены на SSD. Напоминаю, что все мои рассуждения и выводы относятся исключительно к крупным и высоконагруженным информационным системам. Лично мне сейчас приходится работать с базами, средний размер которых более 500 ГБ и расположены они на топовом серверном оборудовании.
«Поэтому» исправил, действительно глаза режет, спасибо. Представленная методика не зависит от режима запуска 1С. Во вложении демки для вариантов запуска как в режиме управляемых, так и обычных форм.
практическая ценность тестов в каких-то демо-базах сомнительна.
я не призываю светить тут учетные данные баз от 500 гб., но только выводов по результатам
тестирования недостаточно. Необходимы визуальные результаты(статистика) тестов именно по таким базам.
(6)Практическая ценность этих тестов не сомнительна — она отсутствует. Эти демо-базы только для того, чтобы перед принятием решения, использовать или нет описанную методику в рабочем режиме, опробовать ее в тесте и предварительно оценить результат ее работы.
(3)Я же написал — без обид.
И обидеть никого не хочу.
Просто мне например не хватает информации из публикации, а заявление что tempdb — зло я не принимаю.
Если не слишком удачно скрестить виртуальные таблицы то у вас оптимизатор БД выберет сканирование таблиц, что на базе 500 Гб будет фиаско.
Отсюда tempdb и вырос в 1С и во всех языках даже чистом SQL он есть
(8) Основные факторы, определяющие мое отношение к этой проблеме таковы:
1. Реально наблюдаемое огромное количество трудоемких физических операций с жестким диском, в разы превышающих число операций с БД хранения и вызванных обработкой временных данных (обоснование во вложении).
2. В результате выполнения этих трудоемких операций, что вполне логично при их критическом увеличении, «зависает» 1С и пользователи программы ощущают существенное неудобство.
3. Я, как специалист, отвечающий за отсутствие этого неудобства, недоволен источником этих неудобств, и был бы рад, если бы использование этого инструмента (ВТ) было всегда технически обоснованным.
Это исключительно мое личное мнение и я его никому не навязываю.
Прошу всех не обсуждать и не поднимать тему использования ВТ в рамках этой публикации.
(7)
Может следующая статья будет про ошибки (время выполнения) в запросах 1с, оптимизация ?
Т.е. как было и как исправили. Например, самые частые ошибки.
(10)Возможно. 🙂
(10)А вы бы не хотели то же самое почитать на ИТС ?
Так сказать из первоисточника
(12)
Первоисточник -это хорошо.
Просто любопытно, какие ошибки самые частые у программистов 1с.
Например, ИТС рекомендует делать индексы на временные таблицы, а по факту — это замедляет работу запроса.
На ИТС не показано во что превращается запрос 1с на MS SQL сервере, когда поля составные.
Вот и хочется в жанре ужасы почитать ))
Ещё,
фирма 1с придумала объектную модель обращения к данным, чтобы программисты 1с использовали её, а не запросы.
Т.е. чтобы 1с работала не слишком быстро ))
(9)дело в том, что скорость работы 1С при правильном написании кода не зависит от размера базы, до тех пор пока не начинается сканирование таблиц разумеется.
В идеале 2 Гб и 2 Тб базы должны вам информацию с регистра остатков например поднять с одинаковой скоростью тем более с SSD
И если этого не происходит, то ни фига это не во … таблицах дело
В принципе в … таблице откуда взяться такому большому объему ? если вы предварительно фильтры накладываете разумеется
Т.е. надо брать профайлер и долго курить ваши запросы
Тогда может и не надо будет так скрупулезно замерять результат оптимизации — вы его услышите по крикам ура и брызгам шампанского из бухгалтерии )
(13)Типичные причины неоптимальной работы запросов и методы оптимизации
Особенности хранения составных типов данных
(13)И тут Остапа понесло…
Ещё, фирма 1с придумала язык 1С чтобы программисты 1с использовали его, а не ассемблер )
(1)Согласен, с точки зрения правильного кода — да, запрос более оптимальное решение. Еще более оптимальное решение — получение этого параметра, к примеру, функцией модуля с повторным использованием возвращаемых значений. Но в рамках демо-примера ни то ни другое не окажет существенного влияния на производительность, т.к. параметр находится за рамками проблемной зоны кода, за границей цикла. Код в примере — всего лишь тестовая нагрузка, не более.
(16) Я считаю платформу 1С — лучшей средой разработки. А язык 1С — лучшим для решения задач по автоматизации любых процессов, и пока что не встречал ни одной задачи, которую бы нельзя было решить быстро, удобно и качественно доступными в 1С средствами .
1. возьмите свою базу в 500 гиг
2. напишите отчет где есть интенсивное обращение к многим оборотным регистрам, регистрам сведений и пр. с количеством записей в таблицах 100-500КК.
3. Напишите вариант отчета из пункта 2 с грамотным использованием ВТ в фильтрах виртуальных таблиц
3.1. Предложите, чтобы 100 пользователей единовременно в течение часа формировали отчет из п.3 с одним и тем же набором «жирных» фильтров
3.2. Соберите статистику по «загрузке» дисков, памяти, процессора, замеры времени сколько работал SQL и сколько сервер приложений 1С «жевал» то, что отдал SQL и пр.
4. Напишите вариант отчета из пункта 2 БЕЗ использования ВТ
4.1. Предложите, чтобы 100 пользователей единовременно в течение другого часа формировали отчет из п.4 с одним и тем же набором «жирных» фильтров как в. 3.
4.2. Соберите статистику по «загрузке» дисков, памяти, процессора замеры времени сколько работал SQL и сколько сервер приложений 1С «жевал» то, что отдал SQL и пр.
5. Сделайте сравнительный анализ п.3.2 — 4.2.
Только после сверки можно делать выводы и пенять на код.
(19) Тема интересная но так «просто» не решаемая. Для оценки производительности нужно собирать стенд и там проводить исследование производительности. Я так понял, что никто этого еще не делал.
Согласен с автором статьи, что неоптимизированный код влияет на производительность.
(19)предложенная методика как раз содержит инструменты, позволяющие выполнить Ваш алгоритм без издевательств над нашими пользователями — достаточно запустить необходимое количество нагрузочных сессий с выполнением необходимых алгоритмов. Предлагаю Вам воспользоваться предложенными инструментами и поделиться результатами исследований — это будет лучшим доказательством Вашей правоты.
«К публикации приложены демонстрационные базы для режимов обычного и управляемого приложения на платформе 1С:Предприятие 8.3 (8.3.9.2033).»
А БП3 уже требует платформы
«Внимание! Текущая версия конфигурации «Бухгалтерия предприятия» предназначена для использования с версией технологической платформы 1С:Предприятие 8 не ниже 8.3.12.1685.»
Не подустарела информация?
И, не пора ли уже предложить 1С добавить поддержку в сервере СУБД в оперативной памяти, таких как СУБД для данных в оперативной памяти, обеспечивающие их сохранность: Redis, Aerospike, Tarantool?
А то, с каждым обновлением платформы, базы работают всё медленней…
(24) В публикации описана методика, которую можно применить в любой конфигурации на любой платформе 1С V8.x.
(23) Тогда уж:
Показать
(25)Понятно.
(16) И на что только люди не пойдут, чтобы не набирать машинный код сразу…
(26) сам код как я понял у автора демонстрационный. Правильнокодавтора (или что иное) брать из результата запроса, а не из ссылки. Здесь автор не учел, что платформа ссылки кеширует. То, что он называет здесь оптимизацией — это просто придуманная проблема, которая красиво отобразилась в топе длительных операций. Статья о том, как искать проблему, а не о том, как ее решать. Ценность данного произведения отсюда ИМХО мала предельно
(20) Всё как обычно 80/20 (А в нашем случае я думаю выйдет даже 90/10). Т.е. для реализации подавляющего большинства задач мощь ООП с наследованием и полиморфизмами не нужны. И, мало этого, при их наличии провоцировало бы неокрепшии умы на творческие экзерцисы которые было бы нетривиально сопровождать.
Частенько задумываюсь, что хотелось бы иметь полноценные свойства объектов с обработчиками get/set. Но опять таки это плюшки и «синтаксический сахар».
(23) Да вообще когда уже полноценную форматную строку сделают printf 🙁
(28)Это еще что. На что люди пошли чтобы безгранично коннектиться посредством блюпуп и вифи.
А как хорошо было раньше.
Один пpогpаммеp пpишел в гости к дpугому. Сидят, пиво попивают. Тут на кухню заваливает огpомный сеpый котяpа.
— Это мой кот. Зовут Модем.
— Почему Модем?
— Смотpи. — беpет веник, тычет в кота. — Модем! Коннект!
(Кот): — Шшшшшшшшш…
(9) Судя по вашему скрину, время ответа по вашим выделенным строкам 12 и 14 мс. Вы где-то увидели проблему? То, что длина очереди 5, практически ни о чём не говорит.
Процитирую статью с sqlcom.ru
(33)Вот только длина очереди не 5, а 50…
во многих конфигурациях — есть обработка «Групповая обработка справочников и документов»
простейшее «нагрузочное» тестирование можно аналогично сделать…
однако, это «чистое» движение (проведение) — не открывая формы документа !? и не возвращаясь в список документов… в котором может быть куча подзапросов и «авторасчетов», расцветки и т.п.
стандартный замер — прекрасная вещь
и в дополнение к нему можно использовать УниверсальныеПодборИОбработкаОбъектов.epf
с диска ИТС — в ней кроме отборов можно делать «произвольный алгоритм»… в том числе открывать и закрывать формы… и что угодно делать кроме этого
******* автору для его разработки (увидел в листинге) *****
1) Таймер() — скорее всего какая-то «своя» функция… лучше заменить на 1С-кую ТекущаяУниверсальнаяДатаВМиллисекундах() — даже в 8.2 есть (с 8.2.19.83 версии точно)
2) вывод…из просто сообщить()… лучше сделать запись в текстовую переменную
а потом её можно и сообщить() и в Текстовый / HTML-Файл (для красоты)… сохранять
3) хорошо оформлена статья, спасибо, удобно читать было
+
Очередная статья, в которой говорится, что временные таблицы — зло. Но у меня другой пример.
Штатный отчет Валовая прибыль из УПП 1.3 (УТ 10.3). Простой запрос, где левым соединением выборка из таблицы себестоимости.
Вставляем этот запрос в СКД один в один, запускаем на базе > 600Гб и получаем зависания на 2-3 часа (при этом иногда выполняется быстро, за несколько секунд). При этом сам запрос, не в СКД, выполняется очень быстро.
Переписываем запрос в СКД на временные таблицы и все работает быстро, никаких зависаний. Предполагаю, что оптимизатор SQL лучше работает на временных таблицах.
Исходя из данной проблемы можно сказать, что вложенные запросы в соединениях еще большее зло, чем временные таблицы.
(36)В этой статье нет ни слова о том, что ВТ — зло. Единственное назначение публикации — описание одного из множества способов анализа и оценки оптимизации программного кода модулей проведения документов. С помощью предложенной методики вы можете сами объективно оценить ту роль (позитивную или негативную), которую играет использование ВТ в проблемных местах Вашей информационной системы.
(9)
В таком случае не следовало рекомендовать отказ от использования временных таблиц. Сейчас же получается, что Вы даете откровенно вредную рекомендацию и просите ее не обсуждать. В джентльменском обществе за такое канделябром бьют 🙂
(38)В публикации нет рекомендаций отказа от временных таблиц, есть лишь рекомендация использовать этот инструмент обдумано и технически обосновано.
(36) Запрос в СКД может работать иначе, чем исполнение в консоли запросов или просто кодом.
Причина проста — СКД трансформирует запрос по неким своим принципам и на сервер улетает совсем не то, что написали вы в наборе/наборах данных .
Далеко не факт, что применение временных таблиц поможет…но я не говорю, что это зло ) В контексте 1С их здравое применение решает. Если временные таблицы применяет неофит, натыкивая их везде где надо и не надо. да еще и индексируя все подряд…это конечно зло )
(39)
Но про техническое обоснование ни слова… про обдуманность то же…
(26) тогда уж:
(41) Повторюсь: предложенная методика дет возможность измерить обоснованность (с точки зрения производительности) использования любых способов построения программного кода в цифрах. Все мои выводы основаны исключительно на результатах этих измерений в информационных системах, которые мне приходилось оптимизировать.
(41) так статья не ставит цель рассказать, что такое обоснованность и обдуманность — она для этого по формату не пройдет на сайт, ибо модератор не сможет дочитать произведение, в полной мере раскрывающее вышеописанное, до конца. Есть совершенный код Макконнелла, есть труды Дейкстры, Вирта, Кнута — не нужно тут про обоснованность и обдуманность, ибо читающие должны быть с приведенными литературными произведениями как минимум ознакомлены.
Другое дело, что автор статьи не привел список литературы, которая могла бы помочь обосновать и обдумать. В те времена, когда пионеры были большими, пруфы даже в школьных докладах были. Но в российской действительности указать ссылки на дополнительные или используемые материалы редко кто способен (видимо, кризис высшего образования), поэтому я современную русскую литературу по бизнесу и прочему стараюсь не читать.
(29)
Как пользоваться замером производительности.
(17)
С модлями с повторным использованием лучше не играться. Если реквизит код или номер документа — еще можно использовать и то с опаской. Если это любой другой реквизит, который с высокой вероятностью может быть исправлен пользователем во время сеанса — то будут возвращаться устаревшие данные. Поэтому лучше всего — это запрос конкретных реквизитов
(15)
кэп, а Вы пробовали загнать несколько миллионов записей во временную таблицу? Или не так, а что будет, если сделать соединение с подзапросом, где на одном из уровней будет таблица данных? Что в таком случае покажет план запроса? Вот долго я ломал голову, а с чего это вендор, у которого есть экзамен Эксперт по технологическим вопросам такие советы дает. Оказалось просто. Постгре не умеет работать с подзапросами, потому и MS SQL досталось на орехи.
Временные таблицы не зло, это умеренное зло, если в конкретно данном случае, в конкретно данной задаче они обоснованы и производительнее, чем подзапрос.
(20) Вы тут лукавите, классы есть, достаточно взглянуть на дерево метаданных.
Про наследование. А для чего оно здесь? Что Вы собираетесь наследовать и для чего?
Плохо Вы изучаете 1С, если до сих пор не поняли, что этот «прошлый век» выполняет функции автоматизации бизнеса, и справляется в этом очень даже хорошо. И без наследования и смс.
Вот банальный пример. Нужно написать небольшую автоматизацию, скажем, киоска.
Даны два ЯП — 1С и любой тру на Ваш выбор. Как Вы думаете, кто быстрее автоматизирует киоск, тру или «парапрограммист» 1С? Ответ очевиден, и микроскопом можно гвоздь забить, но зачем?
(36) а этот запрос Вы берете прямо из СКД, который она сама развернула или то, что пишете в конструкторе?
СКД иногда пихает отборы так криво, что образуются дополнительные соединения с таблицами, отсюда и просадка.
(48) итак мы вернулись к тому с чего начали. Конкуренция за автоматизацию киосков это хорошо.
Вроде как раньше узким местом была стоимость компьютера с 256 мб памяти. Сегодня- наличие мобильной связи на телефоне с 5 Гб оперативки.
(47)Честно скажу я с трудом могу представить задачу в которой нужно загнать несколько миллионов записей во временную таблицу.
План запроса вероятно покажет фулл скан с таблицей из которой у вас во временную с отборами набралось несколько миллионов записей
Не понял вопроса.
Что касается рекомендации — она намного раньше дружбы с постгри появилась.
Да и при таком масштабе задач опять же только по моему мнению уже не до экономии на лицензиях
(51)Элементарно, Ватсон, продажи за месяц в нескольких разрезах дают огромный поток данных. И, если обороты загнать во временную, то пользовательский кеш сразу выталкивается наружу.
Вопрос был в том, что Вы лично смотрели, как ведет высоконагруженная система с запросом с временной таблицей и подзапросом?
По поводу рекомендации, да, раньше, но и MS SQL раньше не очень дружил с подзапросами
(50) Я совсем не понял, что Вы хотели этим сказать
На текущем этапе развития (для меня) статья не актуальна. Пару замечаний
— Получение в коде временных отметок имеет крайне высокую гранулярность, на моем тестовом сервере это 43 миллисекунды, что делает неэффективным подобный механизм на измерениях оптимизированных запросов
— Погрешность отклонения в замерах производительности может составлять 200 миллисекунд
— Параллельные способы выполнения кода в кластере 1С могут не только снижать скорость выполнения отдельных строк кода, но и повышать скорость обмена данными между модулями объектов и общими модулями
Всем успехов!
(37) И вообще, индексация временных таблиц творит чудеса ))
(53)Я что то начал терять нить вашего возмущения.
Вы постом раньше были за подзапросы, а в этом посте вроде против.
Миллиона записей о продажах за месяц у меня нет
(48) Быстрее всего я напишу на BSScript, похожая на 1С система, только в разы продвинутая. 1С — это что? — Готовые объекты, которые заточены на выполнение каких то стандартных операций. Как только отступление — танцы с бубнами и никакой оптимизации. Да много COM приложений. А без COM и ни туды и ни сюды… Хотите нормальный функционал — пишите COM, а это очень увеличивает время разработки. 1С есть куда развиваться.
По поводу бизнеса также не согласен, бизнес стонет от «тормозов» 1C.
(57)Ок, давайте представим, что Вы сделали свою шикарную систему автоматизации киоска. Все работает отлично и гораздо быстрее, чем 1С. И вот, в один прекрасный момент у Вашего заказчика наступил момент, когда бизнес вырос с этапа счетов до калькулятора. Вы будете пару месяцев дорабатывать свою систему и даже что то получится на выходе. Не ERP, конечно, но уже и не эксель. И тут Вы поняли, что жизнь проживается зря, а внутри рвется художник, и вообще, программирование для других, Ваше же дело жизни — руководить. Скажем, менеджером проектов где-нибудь в Италии, на берегу моря. И что делать Вашему заказчику? Правильно. Искать специалистов. Но, как Вы думаете, легко ему это будет сделать? Нет. Легко масштабировать свою систему? Тоже нет. Если из УТ можно довольно просто эволюционировать в комплексную, а там в ERP, то Вашими усилиями будет убита сама идея автоматизировать бизнес, который, к слову, далеко не глупый и выбирает 1С не просто, что где-то слышал, а как возможность сделать свою систему, при этом без слишком высоких трудозатрат на поиски программиста. Это так, лирика.
По поводу отступлений. А бизнесу оно надо? Я успел поработать с огромным количеством компаний и, представьте себе, только пару раз требовалось изобрести что то этакое, но и тем же комом решалось. И то, потому что другие приложения чаще всего не дают апи для работы из вне.
По поводу стонов бизнеса, то тут банально. Легкий вход в профессию плодит недоучек, которые не хотят разбираться, а как, собственно, все устроено и пишут крайне вредный для производительности код, который впоследствии и вызывает стоны.
Да, 1С есть куда развиваться, ИЧСХ она и делает.
(58)
Вот! Золотые слова. Поэтому берете астрального питонщика или PHP-шника и не мучаетесь всякими БССкриптами или чем-там-еще. И никакого 1С, никаких лицензий, дешевые разработчики, которых в западном индостане девать некуда, масштабируемость отличная — хоть киоск, хоть фэйсбук (на пентиуме 1-м даже), …
(59)PHPшники ох как дорого стоят хорошие)
(60)
Индусы? Да они за тарелку супа готовы душу продать! )))
(14) Не согласен с вами. Зависимость есть, хотя и нелинейная
1. Каждое увеличение размера индекса в два раза добавляет 1 шаг к поиску строки в бинарном индексе, что частично нивелируется статистикой
2. Увеличение размера индексов повышает скорость устаревания статистики после выполнения операции UPDATE STATISTICS
3. Ваше утверждение упирается в невозможность размещения индексов в ОЗУ после определенного объема базы
(38) Это зависит от того, кто был на прикупе ))
(43) Дмитрий, дам совет.
— Не рассматривайте время в миллисекундах, получаемое средствами 1С как реальный показатель. На самом деле, существует дискретный шаг, внутри которого время выполнения в миллисекундах 1С не измеряет. Например, 56 миллисекунд. От встроенного таймера 1С вы вряд ли получите значение 0.008 секунды, так как данный показатель будет округлен вниз, до нуля, а, соответственно, значения близкие к первой ступени дискретности округляются вверх, завышая время измерения. Соответственно, чтение цифр в вашем примере — «минимальное время», «максимальное время» весьма условно. Я пробовал добиться более высокой точности измерений, изменяя настройку в БИОС High Precision Timer, но на 1С она не влияет, только на операционку. Следовательно, как минимум, требуется внешняя компонента замера таймингов, чтобы на подобные цифры обращать внимание.
— Кроме того, необходимо учитывать важность количества потоков в кластере 1С — достаточно просто проанализировать, крутится ваш тестовый стенд в изолированном потоке, или совместно с вашим тестом обрабатываются дополнительные. Серверный процесс в кластере поочередно исполняет команды из нескольких клиентских соединений, которые находятся на обслуживании у этого процесса, что вносит дополнительный разброс измерений
(13) Индексация временных таблиц замедляет работу запроса:
— ровно настолько, насколько неправильно выбрана модель использования оборудования
— ровно настолько, насколько вы зря решили использовать индексы
Если, например, разместить tempdb на USB флэшке с интерфейсом USB 1.1, то безусловно индексирование ВТ не нужно никогда ))
(62)А вы посчитайте эту нелинейность.
Индекс — это бинарное дерево, насколько оно вырастет при увеличении данных в 2 раза — на 1 шаг
Нормально построенный индекс — он небольшого размера, поэтому индексы и появились.
Т.е. если у вас индекс растет такими же темпами как и данные — у вас неправильные индексы
(66) Безусловно условно одинаковая производительность СУБД сохраняется какое-то время, но это не значит что так бдет на любом объеме данных
(36)
предположу, что в запросе используются вложенные запросы. Отсюда и разное время выполнения. Вложенный запрос — это , по сути, динамический список. При использовании вложенных запросов оптимизатор запроса не сможет построить оптимальный план. Отсюда и разное время выполнения при каждом формировании отчета.
(36)
ожидаемое поведение системы. Отказались от динамического списка в пользу конкретного набора данных, и , «результат, так сказать, на лице»
(61)судя по типовым решениям они сейчас 1с и пилят
(32) Зухелем кота звали.
(44)
Надеюсь хотя бы русскую старую или советскую литературу по бизнесу читаете, если современную российскую избегаете. Есть большая перспектива не читать современную литературу по бизнесу из других стран, начиная со стран Африки, а не только российскую.
(71)
А с чем связана Ваша «надежда»? Советская литература по «бизнесу» — это какая? Ну и старая, собственно, тоже… Про Остапа Бендера что-ли? )))
Я читаю западную литературу (если говорить о бизнесе и экономике). Она в данном вопросе куда качественнее. Из старой Адама Смита, Карла Маркса, Фридриха Энгельса, Эриха Фромма (не совсем о бизнесе, но тоже не зря написано) ну и многих других. Из современных тоже хватает талантливых авторов, если на вскидку, то, например, Джон Нэш, Теодор Шульц, — но это, конечно, нобелевские лауреаты. А из российского если только диссертации докторские по экономике читать, которые не являются плагиатом. Кто там у нас в РФ получил какую-нить престижную мировую премию по экономике за последнее время? Никто? Как жаль…
(72)
Спасибо за идею. Надо будет почитать советскую или старую литературу про бизнес в лице Остапа Бендера. На западе поучится у наших Остапов …
(73)
Мне, вот, в целом ответ не ясен. Кто «поучится» у наших Остапов на западе? Или имелось ввиду «поучиться у наших Остапов на Западе», т.е. поехать на Запад (в соответствующие страны, поэтому с большой буквы) и там взять Ильфа и Петрова, чтобы поучиться бизнесу? С какой целью?
(74)
Подучу грамматику, чтобы потом Вам был ответ ясен.
(75)
Тогда зачем сейчас его писать? Ведь можно потом это сделать! Кстати, с такими мыслями можно и самому написать что-нибудь про бизнес, чтобы за державу не было так обидно.Как Вы считаете, сможете? 😉
(76)
Без ваших западных знаний и без нобелевского опыта нет. Разве что подглядеть ваши статьи со сносками на приличную литературу, если есть. Как Вы считаете? Глядишь и обоим нам не будет обидно за державу.
(77) предлагаете в соавторы? А тема какая? Есть уже план публикации?
(61)мне кажется, индусы уже давно подороже отечественных быдло-кодеров будут…
(79) индусы бывают разные. Не стоит путать брахмана и биндера кнопки «ок»…
Китайцы строят чайна-тауны в любом городе, а Остап раз убит подельником, два ограблен на границе. И вся история.
Красные приходят — грабят, белые приходят — грабят.
Может китайцы просто не жалуются, в отличие от индейцев ( они конечно в курсе что их проблемы шерифов не волнуют, но вот весь мир например, сочувствует…)
(78)это вопрос ко мне чайнику? А Вам слабо? Знающему и опытному любитедю читать западную литературу по бизнесу. Вы меня разочаровываете. Я уже было поверил, что и в заправду разбираетесь в литературной теме о бизнесе. А Вы надеетесь и спрашиваете у чайника. Видать я не по адресу написал. Надеюсь у Вас хватит профессиональной гордости. Не связываться больше с неграмотный неучем.
(82) т.е. вот так сразу при первой сложности в кусты? Вам должно быть стыдно)))