Каковы преимущества различных порядков байтов?

INNER JOIN вернет только те строки, в которых есть совпадающие значения в обеих таблицах, тогда как LEFT JOIN вернет ВСЕ строки из таблицы LEFT, даже если в таблице RIGHT нет подходящей строки

Быстрый пример

TableA
ID   Value
1    TableA.Value1
2    TableA.Value2
3    TableA.Value3

TableB
ID   Value
2    TableB.ValueB
3    TableB.ValueC

ВНУТРЕННЕЕ СОЕДИНЕНИЕ производит:

SELECT a.ID,a.Value,b.ID,b.Value 
FROM TableA a INNER JOIN TableB b ON b.ID = a.ID

a.ID    a.Value            b.ID    b.Value
2       TableA.Value2      2       TableB.ValueB
3       TableA.Value3      3       TableB.ValueC

СЛЕДУЮЩЕЕ СОЕДИНЕНИЕ производит:

SELECT a.ID,a.Value,b.ID,b.Value 
FROM TableA a LEFT JOIN TableB b ON b.ID = a.ID

a.ID    a.Value            b.ID    b.Value
1       TableA.Value1      NULL    NULL
2       TableA.Value2      2       TableB.ValueB
3       TableA.Value3      3       TableB.ValueC

Как вы можете видеть, СЛЕДУЮЩЕЕ СОЕДИНЕНИЕ включает строка из TableA, где ID = 1, даже если в TableB нет совпадающей строки, где ID = 1, тогда как INNER JOIN исключает эту строку именно потому, что в TableB нет соответствующей строки

HTH

11
задан Georg Schölly 27 May 2009 в 07:38
поделиться

3 ответа

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

Например, 32-битная переменная может быть прочитана как 8-битная или 16-битная переменная без изменения адреса. В наши дни это может иметь ограниченное преимущество, но во времена ассемблера и ограниченной памяти это могло быть значительным преимуществом

16
ответ дан 3 December 2019 в 05:59
поделиться

Нет особых преимуществ от большого или малого порядка байтов как такового, за исключением использования встроенного порядка байтов ЦП или обработки указанного файла Порядок байтов.

Причина, по которой сосуществуют и большой, и малый порядок байтов, заключается в том, что разные производители процессоров использовали разные соглашения для представления многобайтовых данных, и в то время не появилось ни одного стандарта.

3
ответ дан 3 December 2019 в 05:59
поделиться

Хм, вы действительно можете использовать SchemaExport, как вы упомянули, но я рассматриваю NHibernate в первую очередь как способ преодолеть разрыв между объектно-ориентированной моделью домена и реляционным постоянным хранилищем. То есть для меня цель NHibernate - сохранять и извлекать сущности в моей модели домена.

Когда вы хотите обновлять схему, imho, вы не должны использовать NHibernate (если это вообще возможно), поскольку это не цель NHibernate. ; существует «предметно-ориентированный язык» под названием SQL :), который хорошо справляется с этими задачами.

Для создания моей базы данных и обновления схемы базы данных я использую Migrator.NET , который - это фреймворк, который позволяет писать классы C #, в которых вы указываете, что нужно сделать (создать таблицу, добавить столбец и т. д.).
Преимущество этого состоит в том, что Migrator.NET также поддерживает несколько СУБД, поэтому вам не придется писать код SQL для конкретной базы данных.

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

Некоторые форматы файлов (например, TIFF) поддерживают оба порядка байтов. В этом случае рекомендуется сгенерировать файл с порядком байтов ЦП, предполагая, что файл будет подвергаться постобработке на том же или аналогичном компьютере.

поэтому рекомендуется сначала измерить максимально возможное увеличение скорости оптимизации процедуры чтения.

Некоторые форматы файлов (например, TIFF) поддерживают оба байта. В этом случае рекомендуется сгенерировать файл с порядком байтов ЦП, предполагая, что файл будет подвергаться постобработке на том же или аналогичном компьютере.

поэтому рекомендуется сначала измерить максимально возможное увеличение скорости оптимизации процедуры чтения.

Некоторые форматы файлов (например, TIFF) поддерживают оба байта. В этом случае рекомендуется сгенерировать файл с порядком байтов ЦП, предполагая, что файл будет подвергаться постобработке на том же или аналогичном компьютере.

1
ответ дан 3 December 2019 в 05:59
поделиться
Другие вопросы по тегам:

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