Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 39 40 41 42 43 [44] 45 46 47 48 .. 75   вперед  Ctrl
 Re: Выбор СУБД!  [new]
Yo.!
Guest
pkarklin

Как то все это через задницу... Другое дело - табличные параметры в MS SQL 2008. ;)


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

с очередным примером вышел пшик, будут еще примеры ?
4 фев 09, 12:11    [6776958]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
МСУ
Gluk (Kazan)
МСУ

На кой они нужны в скивеле? Это оракляный пережиток прошлого из-за отсутствия автоинкремента


сотню раз муслолилось. sequence универсальнее, может раздавать значения для нескольких таблицтак что не известно кто тут пережиток


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

Бред. Каждой таблице - свой инкремент (или гуид). Так что сиквенсы - фтопку :)


Логический вывод интересен
Нет в MS SQL + Можно криво использовать -> Никому не нужно

знакомо :)
4 фев 09, 12:13    [6776974]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
МСУ
когда сиквенс юзался несколькими таблицами - переполнение значений.


Про переполнение значений кстати недогнал
4 фев 09, 12:13    [6776977]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
Gluk (Kazan)
МСУ
когда сиквенс юзался несколькими таблицами - переполнение значений.


Про переполнение значений кстати недогнал


Почитайте про ограничения интового типа данных
4 фев 09, 12:15    [6776994]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
skelet
SergSuper

и под ВТ я например понимал табличные переменные


ну не фига себе новость! Мы тут про фому, а вы ...

и что это меняет? в MS есть нечто, что можно объявить локально и делать оттуда запросы, в Оракле - нет, и это его особенность :)
skelet

SergSuper

но опять же - разговор шел не про производительность, а про удобство написания
ну это же ненормально когда я в оракле выбираю данные в таблицу-переменную, а выбрать из неё запросом не могу
поэтому и приходится делать материлизованные вью, пайплайн функции :)

Вы не умеете, а некоторые - запросто :)) https://www.sql.ru/forum/actualthread.aspx?bid=3&tid=630418&pg=-1
я не заметил где там локально описывается таблица, почему лучше локально я уже писал

Gluk (Kazan)
насчет примера с расчетом остатков
я так понимаю на 9-й версии это работать не будет?
но даже если и будет - получение остатков нужно довольно часто и в данном случае проще написать один раз функцию и вызывать с двумя параметрами, чем писать довольно длинную и не совсем очевидную по смыслу строчку

Сообщение было отредактировано: 4 фев 09, 12:24
4 фев 09, 12:21    [6777043]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
МСУ
Gluk (Kazan)
МСУ
когда сиквенс юзался несколькими таблицами - переполнение значений.


Про переполнение значений кстати недогнал


Почитайте про ограничения интового типа данных


Почитайте про ограничения NUMBER у него ограничения несколько менее жесткие и мне очень сомнительно, что вам удалось его переполнить.

Кстати платформозависимые int-ы в базе оказались для нас "приятным" сюрпризом при портации Oracle -> MS SQL. Не всем идентификаторам удалось влезть в это прокрустово ложе :(
4 фев 09, 12:23    [6777056]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
Gluk (Kazan)
Member

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

я так понимаю на 9-й версии это работать не будет?
но даже если и будет - получение остатков нужно довольно часто и в данном случае проще написать один раз функцию и вызывать с двумя параметрами, чем писать довольно длинную и не совсем очевидную по смыслу строчку


Если мне склероз не изменил, это будет работать даже в 8i
Проще один раз разобраться с функциями аналитики (они довольно полезны в жизни и производительнее итеративных подходов и запросов в фразе select, которые кстати тоже не возбраняются), чем каждый раз сочинять процедурные лисапеды ;)
4 фев 09, 12:25    [6777073]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
skelet
Member [заблокирован]

Откуда: moskau
Сообщений: 5549
SergSuper, вам пример с созданием типа в области видимости пакета не устраивает?

автор
и что это меняет? в MS есть нечто, что можно объявить локально и делать оттуда запросы, в Оракле - нет, и это его особенность :)

опять же я вам привёл пример (и не я один) такого запроса, что не устраивает?
4 фев 09, 12:27    [6777086]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
skelet
Member [заблокирован]

Откуда: moskau
Сообщений: 5549
SergSuper

я так понимаю на 9-й версии это работать не будет?
но даже если и будет - получение остатков нужно довольно часто и в данном случае проще написать один раз функцию и вызывать с двумя параметрами, чем писать довольно длинную и не совсем очевидную по смыслу строчку


аналитика в 8-ке введена.
По поводу простоты - дело привычки и вкуса, кому-то вообще проще без всякого sql процедурным способом извлекать данные из таблиц, что с того? -)
4 фев 09, 12:28    [6777100]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
Подпольщик
Guest
Gluk (Kazan), в постгре пользуется BIGSERIAL.
Создастся поле типа INT64 и последовательность, которая пропишется в DEFAULT поля.
Переполнить ОЧЕНЬ сложно. А если что не так - UUID всё разрулит.
4 фев 09, 12:29    [6777108]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
Gluk (Kazan)
Почитайте про ограничения NUMBER у него ограничения несколько менее жесткие и мне очень сомнительно, что вам удалось его переполнить.

1. Так есть у него ограничения или нет, Вы выяснили для себя?
2. Почему Вы считаете, что это значение нельзя переполнить? Вы работали когда-нибудь с биллинговыми данными?
P.S. Плюс организация решения сама по себе была "не очень". Я сел за то, что мне дали. И оно работало, пока не случилось переполнения :) Потом, конечно, разрулили ситуацию.

Вот я и говорю - нахрена вешать сиквенс на несколько таблиц? Зачем? Что за бред?
Таблица в БД - и так уникальна. "DataBaseName.TableName.NumberKey" - и так дает уникальность. Так на кой мне Ваши сиквенсы? На кой мне Ваша непонятная "универсальность"?
4 фев 09, 12:33    [6777136]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
skelet
SergSuper, вам пример с созданием типа в области видимости пакета не устраивает?

меня бы вполне устроил пример где тип и переменная объявляются в области видимости пакета
я даже больше скажу - он бы мне сильно помог
но пока я такой пример не увидел
4 фев 09, 12:34    [6777144]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
Подпольщик
Gluk (Kazan), в постгре пользуется BIGSERIAL.
Создастся поле типа INT64 и последовательность, которая пропишется в DEFAULT поля.
Переполнить ОЧЕНЬ сложно. А если что не так - UUID всё разрулит.


Я что-то сказал про Postgerss ???
4 фев 09, 12:37    [6777162]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
Подпольщик
Guest
Gluk (Kazan), это для сравнения.
4 фев 09, 12:41    [6777195]     Ответить | Цитировать Сообщить модератору
 Re: тогда вопрос номер два!  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Gluk (Kazan)
Зря иронизируете. Бывает один запрос куда понятнее чем мегатонны (рекурсивных ;) процедур
от привычки во многом зависит. Посмотрите хоть на функциональщиков ...

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

Gluk (Kazan)

А по производительности (в Oracle) крайне редко процедурное решение бывает производительнее ОДНОГО SQL-запроса (уверен, что в MS SQL это не так, убеждать не надо)

Зависит от, как говорится.
4 фев 09, 12:50    [6777252]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
barsukof
Member

Откуда: из теплой сибири
Сообщений: 231
Eugenkru1

Rushmore работает просто великолепно!
....
При всём желании мне трудно представить задачу, где понадобилось бы 195 миллионов записей.
Это может быть что-то из области математики

Эта область математики называется "Учет товарооборота продуктового супермаркета".
Автоматизируйте , например "Метро", и в конце года пащщитайте количество записей продаж.
4 фев 09, 12:50    [6777256]     Ответить | Цитировать Сообщить модератору
 Re: тогда вопрос номер два!  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
МСУ
Неужели сложно отлистать несколько страниц назад и заюзать линки? Откуда в Вас столько лени?

От природы. Не люблю, знаете ли, делать лишнюю и ненужные работу (к примеру - не люблю заводить абсолютно ненужные классовые прослойки).
4 фев 09, 12:51    [6777265]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
pkarklin
Member

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


Уже не только эти два.

Yo.!
с очередным примером вышел пшик, будут еще примеры ?


ну, что ж раз такой нахрап, то придется faceом об table (parameters)...

Table-Valued Parameters (ODBC)

Table-Valued Parameters (OLE DB)

Там много всего. Ключевая фраза:

Currently, you can send multirow data to the server as parameters to a procedure with parameter sets (the DBPARAMS parameter in ICommand::Execute). With parameter sets, every element of the set has to be sent in a separate remote procedure call (RPC) request to the server. Table-valued parameters provide similar functionality, but there is better integration with the server. This reduces the number of RPC requests and enables set-based operations on the server.

Table-value parameters are supported in SQL Server Native Client OLE DB Provider as OLE DB Rowset objects. Any Rowset object could be provided by the consumer (that is, the client application using SQL Server Native Client OLE DB Provider) as a placeholder for table-valued parameter parameters. Table-valued parameters are treated like other SQL Server parameter types.
The SQL Server Native Client OLE DB Provider provides creation, discovery, specification, binding and schema interfaces.


И на закуску:

http://blogs.msdn.com/access/archive/2009/01/28/using-sql-server-2008-table-valued-parameters-tvps-from-access.aspx
4 фев 09, 12:53    [6777281]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
МСУ

1. Так есть у него ограничения или нет, Вы выяснили для себя?


SQL> create table test (a integer, b number);

Table created.

SQL> insert into test(a,b) values (9999999999999999999999999,9999999999999999999999999);

1 row created.

SQL> select to_char(a,'999999999999999999999999999999'),
  2         to_char(b,'999999999999999999999999999999') from test;

TO_CHAR(A,'99999999999999999999 TO_CHAR(B,'99999999999999999999
------------------------------- -------------------------------
      9999999999999999999999999       9999999999999999999999999

Я для себя это давно выяснил. А ВЫ уверены, что Вам не хватило именно такой разрядности

МСУ

2. Почему Вы считаете, что это значение нельзя переполнить? Вы работали когда-нибудь с биллинговыми данными?


Ага :)

МСУ

P.S. Плюс организация решения сама по себе была "не очень". Я сел за то, что мне дали. И оно работало, пока не случилось переполнения :) Потом, конечно, разрулили ситуацию.


Это другая тема. Могу предположить, что тип был NUMBER(N)

МСУ

Вот я и говорю - нахрена вешать сиквенс на несколько таблиц? Зачем? Что за бред?
Таблица в БД - и так уникальна. "DataBaseName.TableName.NumberKey" - и так дает уникальность. Так на кой мне Ваши сиквенсы? На кой мне Ваша непонятная "универсальность"?


Например чтобы обеспечить сквозную идентификацию физиков и юриков. Дуга в простонародье.
Можно до хрипоты спорить о дизайне, но факт останется фактом: sequence позволяет получить все то-же что дает autoincrement и кое что чего autoincrement не дает
4 фев 09, 13:02    [6777353]     Ответить | Цитировать Сообщить модератору
 Re: тогда вопрос номер два!  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
locky
МСУ
Неужели сложно отлистать несколько страниц назад и заюзать линки? Откуда в Вас столько лени?

От природы. Не люблю, знаете ли, делать лишнюю и ненужные работу

А почему Вы считаете, что я заинтересован давать Вам пищу (знания), если Вы же сами не любите делать "лишнюю" работу?
Вы же сами попросили у меня инфу - я дал. С ложечки кормить не собираюсь.

locky
к примеру - не люблю заводить абсолютно ненужные классовые прослойки.

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

Это я уже понял, таварисч Локи
4 фев 09, 13:06    [6777376]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
Yo.!
Guest
2pkarklin

очередной примерчик я с ВТ, которые необходимо налету создавать.
а с параметрами, спасибо, посмотрю, неужто мсскл уже в плотную к возможностям oracle8i подошел
4 фев 09, 13:08    [6777388]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Yo.!
а с параметрами, спасибо, посмотрю, неужто мсскл уже в плотную к возможностям oracle8i подошел


Нет, он ушел в этом плане гараздо дальше, чем 11g. ;)
4 фев 09, 13:12    [6777414]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
pkarklin
Yo.!
а с параметрами, спасибо, посмотрю, неужто мсскл уже в плотную к возможностям oracle8i подошел


Нет, он ушел в этом плане гараздо дальше, чем 11g. ;)


В напрвлении каких фич если не секрет ? ;)
4 фев 09, 13:17    [6777445]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
Yo.!
Guest
pkarklin

Нет, он ушел в этом плане гараздо дальше, чем 11g. ;)

да, так вот без pl/sql пакетов, отслеживания зависимостей, автономных транзакций из оракла девяностых взял и ушел дальше 11g
а можно уточнить в котором месте то ушел ?
4 фев 09, 13:24    [6777503]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Gluk (Kazan)
В напрвлении каких фич если не секрет ? ;)


Ну, мы то про TVP от MS SQL vs array based parameters от Oracle. ;)

Ну, во-первых они жестко типизированы.
Во-вторых, на сервере такой код, IMHO, как минимум читабельнее, не говоря уже об оптимизации:

/* Create a table type. */
CREATE TYPE LocationTableType AS TABLE 
( LocationName VARCHAR(50)
, CostRate INT );
GO

/* Create a procedure to receive data for the table-valued parameter. */
CREATE PROCEDURE usp_InsertProductionLocation
    @TVP LocationTableType READONLY
    AS 
    SET NOCOUNT ON
    INSERT INTO [AdventureWorks].[Production].[Location]
           ([Name]
           ,[CostRate]
           ,[Availability]
           ,[ModifiedDate])
        SELECT *, 0, GETDATE()
        FROM  @TVP;
        GO
чем

where a.subject_id in (select * from table(cast(array1 as myuser.int_table_type)) as dummy_table1 )

Ну, и в третьих, поддержка и в ODBC и в OLEDB.
4 фев 09, 13:24    [6777505]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 39 40 41 42 43 [44] 45 46 47 48 .. 75   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить