|   |   | 
| 
 | Изменение записей в наборе записей РС | ☑ | ||
|---|---|---|---|---|
| 0
    
        Dolphinbet 15.07.16✎ 09:42 | 
        Требуется изменить n записей из набора N записей непериодического регистра сведений за одно обращение к базе данных. Как это можно реализовать?     | |||
| 1
    
        Mankubus 15.07.16✎ 09:43 | 
        1. Получить набор
 2. Изменить записи 3. Записать | |||
| 2
    
        Dolphinbet 15.07.16✎ 09:49 | 
        (1) Насколько это правильно с точки зрения производительности и нагрузки на БД? Допустим, N = 1 000 000 записей, а n = 100 записей. То есть мы читаем миллион записей меняем100 записей и записываем в БД миллион записей.     | |||
| 3
    
        IlyaSR 15.07.16✎ 09:54 | 
        (2)Получить набор - зачем читать все записи, получите только нужные через отбор
 1. Получить набор 2. Изменить записи 3. Записать | |||
| 4
    
        Dolphinbet 15.07.16✎ 10:01 | 
        Допустим, РС имеет 2 измерения ВидНоменклатуры и Номенклатура. Я могу установить отбор только по конкретным значениям измерений в наборе записей. Ставлю отбор по ВидуНоменклатуры - получаю миллион записей, из которого мне надо поменять 100 записей (записи по конкретным номенклатурным позициям). Установить отбор по этим 100 записям я не могу, если только делать это в цикле - 100 раз получаем набор записей, 100 раз делаем запись в БД. Тоже не вариант.     | |||
| 5
    
        Bigbro 15.07.16✎ 10:04 | 
        если малое количество записей и отборами их отфильтровать не получается может имеет смысл через Менеджер сделать.
 хотя это сравнительно медленно работает | |||
| 6
    
        Dolphinbet 15.07.16✎ 10:06 | 
        (5) Каким образом понять малое количество записей или большое? понятно, например, что 100 записей из миллиона это мало, но какими критериями руководствоваться в алгоритме?)     | |||
| 7
    
        Dolphinbet 15.07.16✎ 10:09 | 
        Может быть использовать прямую запись в таблицу БД через ADO?     | |||
| 8
    
        Dolphinbet 15.07.16✎ 10:11 | 
        или все таки как-то можно реализовать это средствами платформы? прямая запись в таблицу БД - крайний вариант решения проблемы...     | |||
| 9
    
        IlyaSR 15.07.16✎ 10:19 | 
        А если через менеджер все же
 НаборЗаписей.Записать(ИСТИНА); тогда просто сделает запись с замещением | |||
| 10
    
        Dolphinbet 15.07.16✎ 10:21 | 
        (9) проблема в том как избежать большого объема считываемых и записываемых данных ради того, чтобы изменить небольшое кол-во записей?     | |||
| 11
    
        FIXXXL 15.07.16✎ 10:48 | 
        (10) запросом можешь получить набор нужных?
 потом перебирай выборку, читай-пиши по одной | |||
| 12
    
        Dolphinbet 15.07.16✎ 10:58 | 
        (11) это цикл, вместо одного обращения к БД получаем сотни...     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |