Используйте LinearLayout с вертикальной ориентацией вместо RelativeLayout. Вы автоматически получите вертикальное положение объектов
У меня есть утилита импорта, которая находится на том же физическом сервере, что и мой экземпляр SQL Server. Используя специальный IDataReader
, он анализирует плоские файлы и вставляет их в базу данных с помощью SQLBulkCopy
. Типичный файл имеет около 6 миллионов квалифицированных строк, в среднем 5 столбцов десятичного и короткого текста, около 30 байт на строку.
Учитывая этот сценарий, я обнаружил, что размер пакета в 5000 является лучшим компромиссом между скоростью и потреблением памяти. Я начал с 500 и экспериментировал с более крупными. Я обнаружил, что 5000 в среднем в 2,5 раза быстрее, чем 500. Вставка 6 миллионов строк занимает около 30 секунд при размере пакета 5000 и около 80 секунд при размере пакета 500.
10000 не было заметно быстрее. Увеличение до 50 000 улучшило скорость на несколько процентных пунктов, но это ' s не стоит повышенной нагрузки на сервер. Более 50 000 не показали улучшения скорости.
Это не формула, это еще одна точка данных, которую вы можете использовать.
Все зависит от вашей реализации.
Какую скорость вы можете ожидать в своей сети? Вы используете его в формах или ASP.Net? Вам нужно предупредить пользователя о прогрессе? What is the size of the total job?
In my experience running bulk copy without a batch size specified will cause timeout issues. I Like to start with something like 1000 records and do some adjustments from there.
Это проблема, над которой я тоже потратил некоторое время. Я хочу оптимизировать импорт больших файлов CSV (16+ ГБ, 65+ миллионов записей и их рост) в базу данных SQL Server 2005 с использованием консольного приложения C # (.Net 2.0). Как Джереми уже указал , вам нужно будет выполнить некоторую тонкую настройку для ваших конкретных обстоятельств, но я бы порекомендовал вам иметь начальный размер пакета 500 и проверять оба значения. выше и ниже этого.
Я получил рекомендацию проверить значения от 100 до 1000 для размера пакета из сообщения на форуме MSDN и был настроен скептически. Но когда я проверил размер пакетов от 100 до 10 000, я обнаружил, что 500 было оптимальным значением для моего приложения. Значение 500 для SqlBulkCopy. BatchSize
также рекомендуется здесь .
Чтобы еще больше оптимизировать операцию SqlBulkCopy, ознакомьтесь с этим советом MSDN ; Я считаю, что использование SqlBulkCopyOptions.TableLock помогает сократить время загрузки.