10.12.2009, 18:13 | #81 |
Участник
|
http://axapta.mazzy.ru/lib/literals_vs_placeholders/
Все здесь поняли - для вас это важно. Ок. Не горячитесь. Будет потихоньку. Есть и другая работа. |
|
10.12.2009, 18:17 | #82 |
Участник
|
А в остальном, прекрасная маркиза, msdn, msdn
http://social.msdn.microsoft.com/Sea...0query%20&ac=8 Про ограничение в 8 (или 16) таблиц - помню. Найду. Самому интересно. |
|
10.12.2009, 18:23 | #83 |
Участник
|
|
|
10.12.2009, 18:25 | #84 |
Участник
|
Цитата:
Сообщение от mazzy
А в остальном, прекрасная маркиза, msdn, msdn
http://social.msdn.microsoft.com/Sea...0query%20&ac=8 Про ограничение в 8 (или 16) таблиц - помню. Найду. Самому интересно. поясняю. начали говорить про оптимизацию запроса ядром (потому что он прекращает всякие попытки) а закончили темами, как оптимизировать выборку из таблицы с 15 млн записями. вот Вы так любите форумчан огораживать, что 1сники очень любят подменять понятия, а сами их подменяете.. не хорошо.. |
|
10.12.2009, 18:27 | #85 |
Участник
|
|
|
10.12.2009, 18:32 | #86 |
Участник
|
Начиная с версии 8.1, 1С также умеет динамически обновлять приложение. При одном условии - не менялась структура таблиц БД. Мне кажется, это разумное и терпимое ограничение. Особенно учитывая откровенно "немодульный" подход к проектированию функционала типовых конфигураций 1С.
|
|
10.12.2009, 18:33 | #87 |
Участник
|
Цитата:
|
|
10.12.2009, 18:36 | #88 |
Участник
|
В общем, не могу найти про 8 или 16 таблиц. Помогите ссылкой если кто помнит прямую и явную ссылку
вкратце http://msdn.microsoft.com/en-us/library/ms190623.aspx Цитата:
The sequence in which the source tables are accessed.
Typically, there are many sequences in which the database server can access the base tables to build the result set. For example, if the SELECT statement references three tables, the database server could first access TableA, use the data from TableA to extract matching rows from TableB, and then use the data from TableB to extract data from TableC. The other sequences in which the database server could access the tables are: TableC, TableB, TableA, or TableB, TableA, TableC, or TableB, TableC, TableA, or TableC, TableA, TableB ... The SQL Server query optimizer is a cost-based optimizer. Each possible execution plan has an associated cost in terms of the amount of computing resources used. The query optimizer must analyze the possible plans and choose the one with the lowest estimated cost. Some complex SELECT statements have thousands of possible execution plans. In these cases, the query optimizer does not analyze all possible combinations. Instead, it uses complex algorithms to find an execution plan that has a cost reasonably close to the minimum possible cost. Далее, насколько я понимаю, сейчас msdn показывает инфу по SQL 2008. Раньше, насколько я помню, никаких "instead" не было. Говорилилось, что запрос не оптимизируется, а тупо выполняется как написан вложенными циклами. Найти только не могу. Попробую поискать ночером. |
|
10.12.2009, 18:39 | #89 |
Участник
|
Цитата:
Здесь все сохраняется. Никуда не переносится. Поиск работает. Успокойтесь. Почитайте пока старые ветки про сравнение http://axforum.info/forums/forumdisplay.php?f=29 Да, уже осознал - для вас это принципиальный вопрос. Ок. Значит надо будет еще поискать. |
|
10.12.2009, 18:41 | #90 |
Участник
|
Цитата:
Я думал, что вы спрашиваете. А вы попенять хотели... Ах... |
|
10.12.2009, 18:50 | #91 |
Участник
|
ну вот. уже подходим плавно к тем понятиям, которые используются не аксаптой, а SQL.
"possible execution plans" это не запросы, а именно планы выполнения запроса, который выбирается наиболее оптимальный исходя из нескольких параметров, это как найти ближайшее расстояние из точки А в Б с учетом пробок, качества дороги, расстояния, времени суток и еще кучи параметров. "Some complex SELECT statements" это не 8 или 16 таблиц, а как Вы правильно сказали подзапросы или несколько селектов. а запрос "тупо не оптимизируется" как раз таки, при указании forceSelectOrder, если я правильно понял и он переходит в FORCEORDER хинт запроса. а если это не так, тогда я даже и не знаю зачем эта опция нужна. может ее оставили для совместимости. ну и напоследок: "In these cases, the query optimizer does not analyze all possible combinations. Instead, it uses complex algorithms to find an execution plan that has a cost reasonably close to the minimum possible cost." совсем не говорит о том, что ПЛАН ВЫПОЛНЕНИЯ не строится оптимальным. он выбирается исходя из алгоритма ядра. это конечно загадка в общем виде, но за 6 лет экспериментирования с SQL Server напрямую (не используя СУБД интерпретаторы запросов) я еще ни разу не столкнулся, чтобы серверу налево и направо советовали указывать хинт FORCEORDER. это исключительные случаи, которые даже не 1 на 100, а 1 на несколько миллионов наверное. у сервера может крышу снести и на 2х таблицах, если попал в неумелые руки. |
|
10.12.2009, 18:53 | #92 |
Участник
|
|
|
10.12.2009, 19:01 | #93 |
Участник
|
Цитата:
Сообщение от mazzy
Да вы не кипятитесь. Здесь не чат. И не 1Совские форумы, где ушедшая с первой страницы тема считается потерянной
Здесь все сохраняется. Никуда не переносится. Поиск работает. Успокойтесь. Почитайте пока старые ветки про сравнение http://axforum.info/forums/forumdisplay.php?f=29 Да, уже осознал - для вас это принципиальный вопрос. Ок. Значит надо будет еще поискать. сравнение ERP систем, а разговор зашел о SQL Server который есть СУБД. и в нем нет никаких ERP MRP и прочих систем, это ядро управления. я не говорю что 1сцы молодцы и все прекрасно сделали. у меня много "вопросов" к ним по платформе (только давайте не будем скатываться до конфигураций УПП и прочей лабуды). и я далеко не считаю ее идеальной. и я уверен что у меня будет столько же вопросов по аксапте, если ее начать изучать, но это выходит за рамки вопроса. я не хочу чтобы вы сеяли панику на счет SQL Serverа, потому как потом придется или самому исправлять код (что не дай бог), или до какого-нибудь новичка доводить, что информация устарела и была актуальной лет 10 назад. |
|
11.12.2009, 08:06 | #94 |
Участник
|
Цитата:
Сообщение от Vezunchik
1. палка всегда с двумя концами. видел я обновления в "тестовой базе".. которая потом оказывалась продуктивом.. это естественно не минус, но одних плюсов из этого быть не может.
2. в 8.2 это появилось. 3. и какие же это большие возможности оптимизации и улучшения производительности алгоритмов? не устраивает работа стандартного 1с интерпретатора, используй прямые запросы к скулю.. 3. Был опыт построения отчетов в 1С с прямыми sql запросами. Редкостная садо-маза. На счет возможностей по оптимизиции объясню на примере. Допустим в базе 1С стоит задача обновить в справочнике "Номенклатура" поле "Наименование". Для простоты его нужно изменить на слово "Hello". Нам нужно будет написать примерно такой код: ВыборкаНоменклатура = СправочникиМенеджер.Номенклатура.Выбрать(); Пока ВыборкаНоменклатура.Следующий() Цикл ОбъектНоменклатура = ВыборкаНоменклатура.ПолучитьОбъект(); ОбъектНоменклатура.Наименование = "Hello"; ОбъектНоменклатура.Записать(); КонецЦикла; Причем других вариантов нет. (Ну разве что можно поизощраться и не использовать Выборку) В аксапте эта задача может быть решена следующим образом X++: ttsbegin; while select forupdate InventTable { InventTable.ItemName = "Hello"; InventTable.update(); } ttscommit; Но в аксапте есть возможности по его оптимизации Я могу написать еще так X++: ttsbegin; while select forupdate InventTable { InventTable.ItemName = "Hello"; InventTable.doupdate(); } ttscommit; А еще я могу написать так X++: update_recordset InvetnTable setting ItemName = "Hello"; Последний раз редактировалось PSerg; 11.12.2009 в 08:14. |
|
11.12.2009, 08:11 | #95 |
Участник
|
Цитата:
|
|
|
За это сообщение автора поблагодарили: Alexx7 (-1). |
11.12.2009, 10:04 | #96 |
Участник
|
Попробуйте изменить таблицу и накатить её на рабочую, когда пользователи сидят в ней (в таблице). Вообще все плановые накаты делаются в монопольном режиме для этого специально подбирают время.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. Последний раз редактировалось miklenew; 11.12.2009 в 10:09. |
|
|
За это сообщение автора поблагодарили: Alexx7 (1). |
11.12.2009, 10:22 | #97 |
Участник
|
Если используются несколько аосов - то при изменении объекта на одном из них требуется синхронизация с другими, т.е. пользователю нужно как минимум перезайти в аксапту, а иногда приходится перезапускать аосы для приведения их к единообразию.
__________________
Существует 10 типов людей: одни понимают двоичную систему, другие - нет. |
|
11.12.2009, 10:30 | #98 |
Участник
|
Пробовал. Сбоев пока не было. Согласен, лучше делать обновления когда таблицы никем не используются
|
|
11.12.2009, 10:39 | #99 |
Участник
|
А вы еще раз попробуйте создайте табличку с несколькими полями, форму для нее, откройте форму, введите что-то туда, потом вернитесь в АОТ, не закрывая форму, удалите какое либо поле таблицы, вернитесь в открытую форму и нажмите, например, сохранить или создать новую запись. Станет ясно о чем Вам пытаются тут сказать.
|
|
11.12.2009, 10:42 | #100 |
Участник
|
Цитата:
прямые запросы по изменению массовых данных отрабатывают секунды, тогда как поочередная займет порядка на 2 больше времени... |
|
Теги |
1c, платформа, сравнение систем |
|
|