|  23.11.2005, 15:02 | #1 | 
| ---------------- |  Есть ли выигрыш от RecordInsertList 
			
			Дает ли RecordInsertList какое-нибудь увеличение производительности? Откуда вопрос - Смотрю в SQLProfiler и вижу все тот же набор INSERT INTO. | 
|  | 
|  23.11.2005, 15:15 | #2 | 
| Участник | Цитата: 
		
			The array insert operation automatically falls back to classic record-by-record inserts when non-SQL based tables are used (e.g. temporary tables), or the insert() method on the table is overloaded (unless explicitly discarded).
		
	 | 
|  | 
|  23.11.2005, 15:27 | #3 | 
| Участник | 
			
			По идее это и есть  insert_recordset, только с ним удобно работать. Вставляет все сразу - то есть прирост существенный. | 
|  | 
|  23.11.2005, 15:44 | #4 | 
| ---------------- | 
			
			to _AnK_ нет не мой. Это точно SQL таблица и точно нет insert. Единственное отличие, которое я увидел, при использовании RecordInsertList RecId выделяется бОльшими кусками (47) по сравнению с циклическим doInsert (24). Тем не менее, выигрыш на простейшей таблицы в 2 раза.... непонятно to kashperuk На счет удобства можно поспорить   | 
|  | 
|  23.11.2005, 15:48 | #5 | 
| Участник | 
			
			а что вы конкретно подразумеваете под циклическим doInsert если можно?
		 | 
|  | 
|  23.11.2005, 15:58 | #6 | 
| ---------------- | PHP код: 
			 | 
|  | 
|  23.11.2005, 16:00 | #7 | 
| Участник | 
			
			Ну - так разница то есть -  в первом случае идет только одно обращение к БД - когда делается insertDataBase А во втором каждая строка по отдельности вставляется. | 
|  | 
|  23.11.2005, 16:06 | #8 | 
| ---------------- | 
			
			Иван, о чем я и говорю, что ожидал увидеть 1 обращение к БД (хотя совершенно не представляю как это можно сделать на SQL), а вижу все те же 10000.
		 | 
|  | 
|  23.11.2005, 16:09 | #9 | 
| Участник | 
			
			Хм. я честно говоря профайлером так никогда эту функцию и не смотрел. Тогда действительно странно. Но в хелпе по RecordInsertList написано, что вставка идет именно единоразово. Я им верил - до сегодняшнего дня   | 
|  | 
|  23.11.2005, 16:11 | #10 | 
| Участник | 
			
			Может быть в первом случае инсерты выполняются асинхронно.
		 | 
|  | 
|  23.11.2005, 16:15 | #11 | 
| Участник | 
			
			А что вы собственно ожидали увидеть? Что нибудь типа BULK INSERT?
		 
				__________________ Axapta v.3.0 sp5 kr2 | 
|  | 
|  23.11.2005, 16:16 | #12 | 
| Участник | Цитата: 
		
			Сообщение от kashperuk
			
			 Но в хелпе по RecordInsertList написано, что вставка идет именно единоразово. Я им верил - до сегодняшнего дня     Написано так: Цитата: 
		
			 It should, however, be emphasized, that records are inserted whenever the kernel finds the time appropriate, but no later than the call to insertDatabase
		
	 | 
|  | 
|  23.11.2005, 16:25 | #13 | 
| ---------------- | 
			
			AndyD, я ожидал увидеть чудо, но его там не оказалось... как обычно   Хотя, остался вопрос, если нет существенной разницы в исполнении вставки, то откуда прирост в 2 раза | 
|  | 
|  23.11.2005, 16:57 | #14 | 
| Модератор | Цитата: 
		
			Сообщение от Wamr
			
			 AndyD, я ожидал увидеть чудо, но его там не оказалось... как обычно insert into myTable (..) select .. from #tempTable (для сиквела) похоже, снова что-то заоптимизировали  надо будет проверить на 3.0 без сервиспаков 
				__________________ -ТСЯ или -ТЬСЯ ? | 
|  | 
|  23.11.2005, 17:03 | #15 | 
| Участник | 
			
			Первое что бросилось в глаза - insertDatabase() идет в рамках транзакции. Попробовал стартовать транзакцию перед началом цикла вставки для doInsert() и коммитить после завершения цикла - время вставки уменьшилось в три раза.
		 
				__________________ Axapta v.3.0 sp5 kr2 | 
|  | 
|  24.11.2005, 18:34 | #16 | 
| Участник | 
			
			У меня для вышеприведенного примера вообще разница вышла 1 к 15
		 | 
|  | 
|  24.11.2005, 18:56 | #17 | 
| ---------------- | 
			
			leshy, какая версия Аксапты и какой sql-сервер?
		 | 
|  | 
|  24.11.2005, 19:08 | #18 | 
| Участник | 
			
			Axapta 3.0 SP3 MSSQL 2000 SQL и АОС на одной машине (Ксеон 2х2,4Ггц) | 
|  | 
|  16.09.2013, 12:02 | #19 | 
| Участник | 
			
			Добрый день! Хотелось поднять эту тему! Кто-нибудь использует RecordInsertList для массовой вставки строк для повышения производительности в MS DAX 2009? Помогает? | 
|  | 
|  16.09.2013, 12:50 | #20 | 
| Участник | 
			
			Помогает и еще как. Cтандартное приложение тоже использует. Cм. например вставку в salesParmTable/salesParmLine | 
|  | |
| За это сообщение автора поблагодарили: Just_smile (1). | |
| Теги | 
| recordinsertlist, recordsortedlist | 
|  | 
| 
 |