Вот список различий. Я выделил Oracle-specific features, и надо надеяться сообщество может добавить в конкретных различиях других поставщиков также. Различия, которые характерны для большинства поставщиков, могут пойти непосредственно ниже заголовков с различиями, выделенными ниже.
, Если Вы хотите быстро удалить все строки от таблицы, и Вы действительно уверены, что хотите сделать это, и у Вас нет внешних ключей против таблиц, тогда УСЕЧЕННОЕ, вероятно, будет быстрее, чем УДАЛЕНИЕ.
Различные системные конкретные вопросы нужно рассмотреть, как детализировано ниже.
Оператора Удаляет, DML, Усеченный DDL (, Что такое DDL и DML? )
Переменная поставщиком
Усеченный SQL*Server
может откатываться.
Усеченный PostgreSQL
может откатываться.
Oracle
, поскольку УСЕЧЕННЫМ является DDL, это включает две фиксации, один прежде и один после выполнения оператора. Усеченный не может поэтому откатываться, и отказ в усеченном процессе выпустит фиксацию так или иначе.
Однако посмотрите Ретроспективный кадр ниже.
Удаляет, не восстанавливает пространство, Усеченный восстанавливает пространство
Oracle
, Если Вы используете пункт УСТРОЙСТВА ХРАНЕНИЯ ДАННЫХ ПОВТОРНОГО ИСПОЛЬЗОВАНИЯ тогда, сегменты данных не освобождены, который может быть незначительно более эффективным, если таблица должна быть перезагружена с данными. Метка паводка сбрасывается.
Удаляет, может использоваться для удаления всех строк или только подмножества строк. Усеченный удаляет все строки.
Oracle
, Когда таблица делится, отдельные разделы, может быть усеченным в изоляции, таким образом частичное удаление данных всей таблицы возможно.
Удаляют, может быть применен к таблицам и таблицам в кластере. Усеченный применяется только к таблицам или всему кластеру. (Может быть конкретная Oracle)
, Oracle
Удаляет, не влияет на идентификатор объекта данных, но усеченный присваивает новый идентификатор объекта данных если никогда не было вставки против таблицы начиная с ее создания Даже единственная вставка, которая откатывается, заставит новый идентификатор объекта данных быть присвоенным после усечения.
, который удаляют работы Ретроспективного кадра через, но усеченное предотвращает ретроспективный кадр к состояниям до операции.
Однако от 11gR2 функция FLASHBACK ARCHIVE позволяет это, кроме Использования Express Edition
РЕТРОСПЕКТИВНОГО КАДРА в Oracle http://docs.oracle.com/cd/E11882_01/appdev.112/e41502/adfns_flashback.htm#ADFNS638
Переменная
, Oracle
Удаляет, может быть предоставлен на таблице другому пользователю, или роль, но усеченный не может быть, не используя ОТБРАСЫВАНИЕ НИКАКОЕ предоставление ТАБЛИЦЫ.
Удаляет, генерирует небольшое количество восстановления и большую сумму отмены. Усеченный генерирует незначительную сумму каждого.
Oracle
А усеченная операция представляет неприменимые индексы, применимые снова. Удалите не делает.
усеченный А не может быть применен, когда включенный внешний ключ ссылается на таблицу. Обработка с удаляет, зависит от конфигурации внешних ключей.
, Усеченный Oracle
требует эксклюзивной блокировки таблицы, удалите, требует общей блокировки таблицы. Следовательно отключение блокировок таблицы является способом предотвратить усеченные операции на таблице.
триггеры DML не стреляют в усеченное.
триггеры Oracle
DDL доступны.
Усеченный Oracle
не может быть выпущен по ссылке базы данных.
SQL*Server
Усеченный сброс последовательность для типов столбца ИДЕНТИФИКАЦИОННЫХ ДАННЫХ, удалите, не делает.
В большинстве реализаций, DELETE
оператор может возвратить клиенту строки, которые были удалены.
, например, в Oracle МН подпрограмма / подпрограмма SQL Вы могли:
DELETE FROM employees_temp
WHERE employee_id = 299
RETURNING first_name,
last_name
INTO emp_first_name,
emp_last_name;
DataSnap может делать все, что вы перечислили выше:
Итак, чтобы ответить на ваш вопрос, да, я думаю, что в вашем сценарии можно использовать новый Delphi 2010 DataSnap.
Как сказал Ник, ответ - да.
Боб Сварт написал технический документ и выпустил несколько видеороликов об обновленном DataSnap в Delphi 2010 , которые могут помочь вам началось.
Если ваша многопользовательская игра не отправляет много данных, HTTP и Datasnap могут работать. Если вам нужна быстрая связь, я бы использовал UDP и собственный двоичный протокол. Если вам не нужно обходить корпоративный брандмауэр, который останавливает практически любой протокол, кроме HTTP - а компании обычно не любят людей, играющих в свое рабочее время - брандмауэр блокирует входящее соединение, а не исходящее. Только серверу нужны открытые порты, чтобы клиенты могли подключаться. И я бы также избегал JSON - если вам не нужна совместимость, двоичная сериализация выполняется намного быстрее.