ASP.net встроенная проблема выражения

Хорошо, я должен был попробовать дефрагментацию и HDD против SSD, прежде чем подвергать сомнению мой код. Эти тесты используют Dapper (как предложено в ответе Роберта Харви), но это само по себе не делает разницы в скорости.

База данных 150 МБ, 2 000 000 строк, ~ 136 МБ ОЗУ:

A 2018 4TB WD Blue HDD = 6m 31s
same HDD after defragmenting the database file = 2m 32s
an old SATA Corsair Force3 120GB SSD = 8s

4 500 000 строк, ~ 300 МБ ОЗУ:

HDD = 28min
HDD (defrag) = 13min
SSD = 28s (with both Dapper and my original code)

Каждому тесту предшествовал перезагрузка системы для предотвращения кеширования.

Поэтому я предполагаю, что довольно очевидный ответ таков: не используйте жесткие диски (по крайней мере, 4 ТБ WD Blue) для баз данных SQLite, и, если необходимо, по крайней мере, регулярно их дефрагментируйте.

9
задан James 17 February 2009 в 22:56
поделиться

5 ответов

В Page_Load Вас должен будет позвонить Page. DataBind () для

<asp:textbox id="tbName" runat="server" Text='<%# Eval("test") %>' />

работать.

<% = %> является сокращенным ответом. Запишите (), и никогда не допустимо как атрибут, ни для какого тега сервера.

<% # %> может использоваться, только если conatainer связан с данными (страница в Вашем случае).

<% $ %> может привыкнуть к данным доступа в файлах ресурсов.

Править: Можно также смотреть на то, Как 'связать' текстовое свойство маркировки в разметке, которая является smimilar вопросом.

15
ответ дан 4 December 2019 в 07:35
поделиться

Попытайтесь добавить runat = "сервер" к элементам сервера. Иначе этот элемент не будет обработан в сервере.

Править: На самом деле, "его корректное", что это не работает; код <% =... %> не может быть оценен в теге сервера, только выражения как, например <Ресурсы $ %: % h1>

2
ответ дан 4 December 2019 в 07:35
поделиться

Как указано, <% = %> недопустим где угодно в объявлении управления сервером, кроме того, где внутренняя разметка анализируется как содержание (например, <ItemTemplate> в Повторителе).

<% # %> допустим как выражение для свойств элементов управления, поскольку эти выражения будут оценены, когда DataBind () назовут на управлении.

Ваше использование Оценки () смотрит маленький подозреваемый все же. На пример Оценка () будет использовать текущий Объект страницы в качестве контекста ограничения, что означает, что значение общественной собственности, названной "тестом", будет связано с тем, когда DataBind () назовут. Если Вам на самом деле не определили это свойство на классе Page, выражение никогда не будет оценивать ни к чему.

Оценка () главным образом предназначается для использования в выражениях в рамках средств управления, таких как Повторитель, GridView, ListView, и т.д., где существует список элементов данных, связываемых с помощью шаблонов, и Вам нужен метод, чтобы смочь получить доступ к свойствам текущего элемента данных.

Для всех других средств управления просто используйте нормальные выражения кода в выражении привязки данных - это намного быстрее, и более интуитивно, чем Оценка (), который полагается на отражение во время выполнения.

Если Вы хотите более умное использование альтернативы <% $ %> синтаксис, который старается не связывать с данными в целом, пойдите сюда:

http://weblogs.asp.net/infinitiesloop/archive/2006/08/09/The-CodeExpressionBuilder.aspx

5
ответ дан 4 December 2019 в 07:35
поделиться

Вам, возможно, понадобилось бы пространство имен для управления текстовым полем

<%@ Import "System.Web.UI.WebControls" %>
2
ответ дан 4 December 2019 в 07:35
поделиться
<asp:textbox id="tbName" runat="server"><%="test"%></asp:textbox>
1
ответ дан 4 December 2019 в 07:35
поделиться
Другие вопросы по тегам:

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