Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Microsoft Releases SQL Server 2012  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54791

Отличное описание.
What if we had simply extended ODBC to support building a federated database out of
individually reusable components? What if we had extended ODBC to support a disconnected
programming model? What if we had extended ODBC to work over XML? What if we made ODBC
work with CLR Objects?

The answer is; it wouldn't be ODBC. ODBC (which stands for Open DataBase Connectivity) was
designed for a specific purpose; to be a common Call Level Interface (CLI) to a relational
database.

Не будь этот пост таким древним, я бы не удержался и запостил туда коммент в стиле "И чо?
Что за маниакальное стремление делать API для всех? Гордыня явно мешает сделать API только
для одной СУБД, но хорошее, поэтому плодятся универсальные ублюдки, толком не совместимые
ни с кем."

Posted via ActualForum NNTP Server 1.5

13 мар 12, 16:52    [12240946]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft Releases SQL Server 2012  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Dimitry Sibiryakov
Что за маниакальное стремление делать API для всех? Гордыня явно мешает сделать API только
для одной СУБД, но хорошее, поэтому плодятся универсальные ублюдки, толком не совместимые
ни с кем."


API, он не для СУБД, а для разработчиков, использующих оных. И последним, в большинстве случаев наплевать, как оно там устроено в самой СУБД и какой у ней "нативное апи". Им, разработчикам желательно иметь единообразный "механизм доступа" к любым данным, будь то текстовый файл, или Oraclе. Мне казалось это очевидным.
13 мар 12, 16:56    [12241005]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft Releases SQL Server 2012  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54791

pkarklin
Им, разработчикам желательно иметь единообразный "механизм доступа" к любым данным, будь
то текстовый файл, или Oraclе. Мне казалось это очевидным.

Мне не менее очевидной кажется утопичность этой задачи. Ну не лезет тот же Оракловский
NUMBER с его 38-ю значащими цифрами в variant.

И даже в поддержке языка SQL MS настойчиво отказывается унифицироваться с "чужим" ANSI
стандартом. Т.е. они целенаправленно затрудняют миграцию на любую другую СУБД. На этом
фоне "универсальные" API выглядят как минимум лицемерно.

Posted via ActualForum NNTP Server 1.5

13 мар 12, 17:06    [12241107]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft Releases SQL Server 2012  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Dimitry Sibiryakov,

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


Ты не поверишь. Эта задача решена. И плодами ее решения пользуется туева хуча разработчиков, указывая в строке подключения ADOConnection нужного провайдера и получая набор данных из любого, к чему есть ODBC драйвер или OLEDB провайдер.

автор
Мне не менее очевидной кажется утопичность этой задачи. Ну не лезет тот же Оракловский
NUMBER с его 38-ю значащими цифрами в variant.


У всех (MS SQL), значит лезет (numeric(38, 0)), а у Oracle не лезет?

автор
И даже в поддержке языка SQL MS настойчиво отказывается унифицироваться с "чужим" ANSI
стандартом. Т.е. они целенаправленно затрудняют миграцию на любую другую СУБД.


Например?

автор
На этом фоне "универсальные" API выглядят как минимум лицемерно.


Универсальные АПИ, как раз и хороши тем, что провайдеров разрабатывают сами производители источников и разработчику для ADORecordset.Open в режиме adTable и SQL то знать не надо. :)
13 мар 12, 17:19    [12241286]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft Releases SQL Server 2012  [new]
max_partitions
Guest
pkarklin,

По ссылке:
Scalability and Performance Enhancements (Database Engine)
В разделе Scalability and Performance Enhancements (Database Engine) указано, что:
Scalability and Performance Enhancements (Database Engine)
SQL Server 2012 supports up to 15,000 partitions by default. In earlier versions, the number of partitions was limited to 1,000 by default.

какое максимальное кол-во партиций для таблицы?
В Oracle 1024K-1 (11.2)
13 мар 12, 17:38    [12241577]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft Releases SQL Server 2012  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
max_partitions,

15 000 - это и есть максимум. Вам на практике приходилось иметь их больше?
13 мар 12, 17:46    [12241681]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft Releases SQL Server 2012  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
max_partitions,

TOP кляуза уже появилась в Oracle? Чтоб не заниматься извратами вида:

select name, price
  from (
    select name, price, row_number() over (order by price) r
      from items
  )
where r between 1 and 5; 
13 мар 12, 17:53    [12241772]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft Releases SQL Server 2012  [new]
Yo.!
Guest
pkarklin,

а мсскл вернули звездочку, что бы не писать многокиллометровые left outer join ? :P
а как там поживает мегобаг с update по джоинутым таблицам, подправили или все так же рандомное значение берут ?
13 мар 12, 18:06    [12241914]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft Releases SQL Server 2012  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Yo.!
а мсскл вернули звездочку, что бы не писать многокиллометровые left outer join ?


Не по стандарту! Тут меня даже Дима поддержит. :)


Yo.!
а как там поживает мегобаг с update по джоинутым таблицам, подправили или все так же рандомное значение берут ?


Исчё давно, MERGE:

If UPDATE is specified in the <merge_matched> clause, and more than one row of <table_source>matches a row in target_table based on <merge_search_condition>, SQL Server returns an error. The MERGE statement cannot update the same row more than once, or update and delete the same row.
13 мар 12, 18:12    [12241952]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft Releases SQL Server 2012  [new]
max_partitions
Guest
pkarklin,

pkarklin
15 000 - это и есть максимум. Вам на практике приходилось иметь их больше?


Понятно, смутила фраза by default.
Было свыше 40000, но они возникли из-за некорректных данных, и мы избавились от лишних партиций.
В моей практике в таком количестве не было необходимости, но я не исключаю, что такие задачи возможны.

pkarklin
TOP кляуза уже появилась в Oracle? Чтоб не заниматься извратами вида


Как мне известно, нет. Возможно, в версии 12, но сомневаюсь.

Я изучил список новых фич SQL Server, но мне он показался слишком малым, по сравнению с тем же Oracle.
Более детального списка новых фич нет?
Вот, чтобы далеко не ходить, 11.2.0.1 New Features Guide
13 мар 12, 18:16    [12241977]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft Releases SQL Server 2012  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
max_partitions,

Ну, я как-то никогда не задавался вопросом сравнения новых фич по количеству. В фичах я ищу то, чего мне явно не хватало или то, что мне облегчит жизнь.
13 мар 12, 18:20    [12242007]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft Releases SQL Server 2012  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Yo.!
хи-хи, а ведь я лет семь назад говорил, что как только функционал мсскл начнет подбираться к оракловой девятке


Вот спасибо max_partitions с его ...

11.2.0.1 New Features Guide
1.5.2.1 E-mail Notification

Oracle Database 11g Release 2 (11.2) users can now get e-mail notifications on any job activity.

This feature improves efficiency by enabling users to be notified of any job activity that is of interest to them without having to constantly monitor the job.


Мдя... тяжела бы судьбинушка админа Oracle до этого релиза...
13 мар 12, 18:25    [12242032]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft Releases SQL Server 2012  [new]
Yo.!
Guest
pkarklin
Исчё давно, MERGE:

я про update statement спрашивал. как я понимаю там ничего не поменялось. и эти люди обвиняют в нелогичности оракл
тут играем (update берет с потолка), тут не играем (merge дает еррор), а тут мы рыбу заворачивали !
13 мар 12, 18:25    [12242039]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft Releases SQL Server 2012  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Yo.!
я про update statement спрашивал. как я понимаю там ничего не поменялось.


Менять надо в мозгу проектировщика\разрабочика модели данных.
13 мар 12, 18:27    [12242052]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft Releases SQL Server 2012  [new]
max_partitions
Guest
max_partitions,
max_partitions
Возможно, в версии 12, но сомневаюсь.

http://oracleidentity.wordpress.com/category/oracle-database-12c-row-limiting-clause/

Все-таки, угрожают. Как бы и без этого жили и не испытывали не удобств. Но раз введут, то пусть.
13 мар 12, 18:39    [12242117]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft Releases SQL Server 2012  [new]
Ggg_old
Member

Откуда: Одесса
Сообщений: 1342
млин, только не устраивайте снова ораклосрач..
13 мар 12, 18:54    [12242175]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft Releases SQL Server 2012  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54791

pkarklin
У всех (MS SQL), значит лезет (numeric(38, 0)), а у Oracle не лезет?

Ткни пальцем, в какое место этого variant-а оно может влезть со всем своими 38-мя цифрами:
wtypes.h
/*
  * VARENUM usage key,
  *
  * * [V] - may appear in a VARIANT
  * * [T] - may appear in a TYPEDESC
  * * [P] - may appear in an OLE property set
  * * [S] - may appear in a Safe Array
  *
  *
  *  VT_EMPTY            [V]   [P]     nothing
  *  VT_NULL             [V]   [P]     SQL style Null
  *  VT_I2               [V][T][P][S]  2 byte signed int
  *  VT_I4               [V][T][P][S]  4 byte signed int
  *  VT_R4               [V][T][P][S]  4 byte real
  *  VT_R8               [V][T][P][S]  8 byte real
  *  VT_CY               [V][T][P][S]  currency
  *  VT_DATE             [V][T][P][S]  date
  *  VT_BSTR             [V][T][P][S]  OLE Automation string
  *  VT_DISPATCH         [V][T]   [S]  IDispatch *
  *  VT_ERROR            [V][T][P][S]  SCODE
  *  VT_BOOL             [V][T][P][S]  True=-1, False=0
  *  VT_VARIANT          [V][T][P][S]  VARIANT *
  *  VT_UNKNOWN          [V][T]   [S]  IUnknown *
  *  VT_DECIMAL          [V][T]   [S]  16 byte fixed point
  *  VT_RECORD           [V]   [P][S]  user defined type
  *  VT_I1               [V][T][P][s]  signed char
  *  VT_UI1              [V][T][P][S]  unsigned char
  *  VT_UI2              [V][T][P][S]  unsigned short
  *  VT_UI4              [V][T][P][S]  unsigned long
  *  VT_I8                  [T][P]     signed 64-bit int
  *  VT_UI8                 [T][P]     unsigned 64-bit int
  *  VT_INT              [V][T][P][S]  signed machine int
  *  VT_UINT             [V][T]   [S]  unsigned machine int
  *  VT_INT_PTR             [T]        signed machine register size width
  *  VT_UINT_PTR            [T]        unsigned machine register size width
  *  VT_VOID                [T]        C style void
  *  VT_HRESULT             [T]        Standard return type
  *  VT_PTR                 [T]        pointer type
  *  VT_SAFEARRAY           [T]        (use VT_ARRAY in VARIANT)
  *  VT_CARRAY              [T]        C style array
  *  VT_USERDEFINED         [T]        user defined type
  *  VT_LPSTR               [T][P]     null terminated string
  *  VT_LPWSTR              [T][P]     wide null terminated string
  *  VT_FILETIME               [P]     FILETIME
  *  VT_BLOB                   [P]     Length prefixed bytes
  *  VT_STREAM                 [P]     Name of the stream follows
  *  VT_STORAGE                [P]     Name of the storage follows
  *  VT_STREAMED_OBJECT        [P]     Stream contains an object
  *  VT_STORED_OBJECT          [P]     Storage contains an object
  *  VT_VERSIONED_STREAM       [P]     Stream with a GUID version
  *  VT_BLOB_OBJECT            [P]     Blob contains an object
  *  VT_CF                     [P]     Clipboard format
  *  VT_CLSID                  [P]     A Class ID
  *  VT_VECTOR                 [P]     simple counted array
  *  VT_ARRAY            [V]           SAFEARRAY*
  *  VT_BYREF            [V]           void* for local use
  *  VT_BSTR_BLOB                      Reserved for system use
  */


Posted via ActualForum NNTP Server 1.5

13 мар 12, 18:58    [12242191]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft Releases SQL Server 2012  [new]
max_partitions
Guest
Ggg_old,

Ggg_old
млин, только не устраивайте снова ораклосрач..


Да все нормально. Раньше 13c эту фичу дальше экземпляров разработки все равно пускать нельзя будет. Делаем ставки, сколько будет зафиксировано багов :)
13 мар 12, 19:01    [12242209]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft Releases SQL Server 2012  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Dimitry Sibiryakov
pkarklin
Им, разработчикам желательно иметь единообразный "механизм доступа" к любым данным, будь
то текстовый файл, или Oraclе. Мне казалось это очевидным.

Мне не менее очевидной кажется утопичность этой задачи. Ну не лезет тот же Оракловский
NUMBER с его 38-ю значащими цифрами в variant.

И даже в поддержке языка SQL MS настойчиво отказывается унифицироваться с "чужим" ANSI
стандартом. Т.е. они целенаправленно затрудняют миграцию на любую другую СУБД. На этом
фоне "универсальные" API выглядят как минимум лицемерно.

Из опыта: значительно проще было портировать оракл-приложения, написанные с ODBC, чем такие-же, но с OCI
Хотя и OCI то от ODBC не слишком и отличалось.
13 мар 12, 20:04    [12242552]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft Releases SQL Server 2012  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Dimitry Sibiryakov,

Дима, Дима...

OLE DB uses standard OLE- and Windows-based data types, and uses DBTYPE as a type indicator. A type indicator denotes the data type of a piece of memory. A type indicator is used to describe data types in metadata, method calls, and data and parameter binding.


DBTYPE_NUMERIC

The NUMERIC typedef structure is an exact numeric value with a fixed precision and fixed scale. The NUMERIC typedef structure is defined as follows:

typedef struct tagNUMERIC {
    BYTE precision;
    BYTE scale;
    BYTE sign;
    BYTE val[16];
} DB_NUMERIC;
13 мар 12, 20:19    [12242630]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft Releases SQL Server 2012  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54791

locky
Из опыта: значительно проще было портировать оракл-приложения, написанные с
ODBC

Достаточно было в настройках сменить имя драйвера и параметры подключения?

[quot pkarklin]
    BYTE val[16];

[quot]
А у Оракула значение NUMBER занимает 21 байт... Куда девать остальные 5?

Posted via ActualForum NNTP Server 1.5

13 мар 12, 21:45    [12242992]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft Releases SQL Server 2012  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Dimitry Sibiryakov,

Если терпения хватит разобрать пример: http://support.microsoft.com/kb/229884/en-us/
13 мар 12, 22:29    [12243169]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft Releases SQL Server 2012  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54791

pkarklin
Если терпения хватит разобрать пример

С таким примером главное не терпение, а выдержка. Не могу не процитировать:
//the following code will move the data bytes of the DB_VARNUMERIC to a double
		double dValue = 0;
		BYTE hi, lo;
		double multiplier = 1;
		double adjust = 1;

		for( ULONG i = 0, j = 0 ; i < valbufferlen ; i++, j+=2 )
		{
			hi = lo = ( ( DB_VARNUMERIC * ) buffer )->val[ i ];

			lo <<= 4;
			lo >>= 4;

			dValue += ( ( ( ULONG ) lo ) * multiplier );

			multiplier *= 16;

			hi >>= 4;

			dValue += ( ( ( ULONG ) hi ) * multiplier );

			multiplier *= 16;
		}

Там точно должно быть 16, а не 10?..

Posted via ActualForum NNTP Server 1.5

13 мар 12, 22:58    [12243302]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft Releases SQL Server 2012  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Dimitry Sibiryakov
locky
Из опыта: значительно проще было портировать оракл-приложения, написанные с
ODBC

Достаточно было в настройках сменить имя драйвера и параметры подключения?


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

зы касается именно средств и методов доступа. Не нужно мне тут указывать "что,и select ... from dual start with... connect by... начинал работать? " :)
14 мар 12, 01:48    [12243740]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft Releases SQL Server 2012  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Dimitry Sibiryakov
Там точно должно быть 16, а не 10?..


Точно.
14 мар 12, 08:23    [12243929]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить