Который является лучшим подходом во входе - файлы или DB?

Попробуйте:

letters=['F','D','C','B','A'];
tg = [1 2 1 3 3 1];
letters(tg)

Результат:

ans = FDFCCF

Это работает даже тогда, когда tg (общая оценка) является матрицей:

letters=['F','D','C','B','A'];
tg = [1 2 1 ; 3 3 1];
result = letters(tg);
result


result =                                                                                                                                                                             

FDF                                                                                                                                                                             
CCF

Изменить (краткое объяснение):
Легко понять, что когда вы делаете letters(2), вы получаете второй элемент букв (D).

Но вы также можете выбрать несколько элементов из letters, указав ему массив: letters([1 2]) вернет первый и второй элементы (FD).

Итак, letters(indexesArray) приведет к созданию нового массива, имеет ту же длину indexesArray. Но этот массив должен содержать числа от 1 до длины letters (или всплывет ошибка).

7
задан Vaibhav 27 August 2008 в 06:58
поделиться

10 ответов

Я второй другие ответы здесь, зависит от того, что Вы делаете с данными.

У нас есть два сценария здесь:

  1. Большинство входа к DB, так как администраторские пользователи для продуктов мы создаем потребность смочь просмотреть их в их миленьком приложении со всеми дополнительными свойствами.

  2. Мы регистрируем всю нашу диагностику и информацию об отладке в файл. У нас нет потребности в том, чтобы действительно "украсить" его и TBH, нам даже часто не нужен он, таким образом, мы просто регистрируем и архивируем по большей части.

Я сказал бы, делает ли пользователь что-нибудь с ним, затем зарегистрируйтесь к DB, если для Вас, затем файл будет, вероятно, достаточен.

2
ответ дан 6 December 2019 в 10:55
поделиться

Интересный вопрос, необходимо ли решить зарегистрироваться к базе данных, то, где Вы регистрируете ошибки соединения с базой данных?

Если я регистрируюсь к базе данных, я всегда имею вторичное расположение журнала (файл, журнал событий, и т.д.) в случае, если существуют ошибки связи. Это действительно помогает диагностировать проблемы позже.

6
ответ дан 6 December 2019 в 10:55
поделиться

Одна вещь, которая приходит на ум, состоит в том, что Вы могли иметь каждый поток, пишущий в его собственный файл журнала, и затем сделать ежедневный пакет, выполненный для объединения их.

Если Вы регистрируетесь к базе данных, вероятно, необходимо сделать некоторую настройку и оптимизацию, особенно если DB будет по сети. Самое меньшее необходимо будет снова использовать соединения с БД.

Кроме того, у Вас есть какие-либо определенные потребности иметь журнал в базе данных? Если все, в чем Вы нуждаетесь, является "grep" затем, я не думаю, что Вы получаете много путем вхождения в базу данных.

3
ответ дан 6 December 2019 в 10:55
поделиться

Не уверенный, если это помогает, но существует также утилита под названием Microsoft LogParser, которую можно, предположительно, использовать, чтобы проанализировать основанные на тексте файлы журнала и использовать их, как будто они были базой данных. С веб-сайта:

Синтаксический анализатор журнала является мощным, универсальным инструментом, который обеспечивает универсальный доступ запроса к основанным на тексте данным, таким как файлы журнала, XML-файлы и файлы CSV, а также ключевые источники данных в операционной системе Windows®, такие как журнал событий, Реестр, файловая система и Активный Directory®. Вы говорите Синтаксический анализатор Журнала, в какой информации Вы нуждаетесь и как Вы хотите обработанный. Результаты Вашего запроса могут быть пользовательски отформатированы в основанном на тексте выводе, или они могут быть сохранены к большему количеству специализированных целей как SQL, СИСТЕМНЫЙ ЖУРНАЛ или диаграмма. Программное обеспечение Most разработано для выполнения ограниченного количества определенных задач. Синтаксический анализатор журнала отличается... количество способов, которыми это может использоваться, ограничен только потребностями и воображением пользователя. Мир является Вашей базой данных с Синтаксическим анализатором Журнала.

Я не использовал программу сам, но это кажется довольно интересным!

2
ответ дан 6 December 2019 в 10:55
поделиться

Или как насчет того, чтобы регистрироваться очереди? Тем путем можно выключить pollers каждый раз, когда Вам нравится регистрироваться к разным вещам. Это делает вещи как переворачивание и архивация файлов журнала очень легкими. Это также хорошо, потому что можно добавить pollers, которые регистрируются к разным вещам, например:

  • poller, который ищет сообщения об ошибках и отправляет их на Ваш счет FogBugz
  • poller, который ищет нарушения прав доступа ('x пытался получить доступ к /foo/y/bar.html') к 'взламыванию делает попытку' файла
  • и т.д.
2
ответ дан 6 December 2019 в 10:55
поделиться

База данных - так как Вы упомянули несколько потоков. Синхронизация, а также фильтрованное извлечение является моими причинами моего ответа.
Посмотрите, есть ли у Вас проблема производительности прежде, чем решить переключиться на файлы
"Knuth: Преждевременная оптимизация является корнем всего зла", я не стал дальнейшим в той книге... :)

1
ответ дан 6 December 2019 в 10:55
поделиться

Существуют способы, которыми можно работать вокруг ограничений входа файла.

Можно всегда запускать каждую запись в журнале с идентификатора потока некоторого вида и grep отдельные идентификаторы потока. Или другой файл журнала для каждого потока.

Я зарегистрировался к базе данных в прошлом в отдельном потоке в более низком приоритете. Я должен сказать, queryability очень ценен, когда Вы пытаетесь выяснить то, что пошло не так, как надо.

1
ответ дан 6 December 2019 в 10:55
поделиться

Как насчет того, чтобы регистрироваться в файл базы данных, скажите базу данных SQLite? Я думаю, что это может обработать многопоточные записи - хотя это может также иметь его собственные издержки производительности.

1
ответ дан 6 December 2019 в 10:55
поделиться

Я думаю, что это зависит значительно от того, что Вы делаете с файлами журнала впоследствии.

Из этих двух операций, пишущих в файл журнала, будет быстрее - тем более, что Вы предлагаете писать в базу данных по другому серверу.

Однако, если бы Вы затем пытаетесь обработать и искать файлы журнала регулярно затем лучшее место, чтобы сделать, это было бы базой данных.

Если Вы используете платформу журналирования как log4net, они часто обеспечивают простые основанные на файле конфигурации способы перенаправить вход в файл или базу данных.

0
ответ дан 6 December 2019 в 10:55
поделиться

Мне нравится ответ Gaius. Поместите все операторы журнала в ориентированную на многопотоковое исполнение очередь и затем обработайте их оттуда. Для DB Вы могли обработать их в пакетном режиме, сказать 100 операторов журнала в одном пакете, и для файла Вы могли просто передать их потоком в файл, поскольку они входят в очередь.

Файл или дб? Поскольку многие другие говорят; это зависит от того, для чего Вы нуждаетесь в файле журнала.

0
ответ дан 6 December 2019 в 10:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: