Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Различные математические расчеты.  [new]
TarakaH4eG
Member

Откуда:
Сообщений: 2
Всем доброго времени суток.
По роду деятельности, очень часто приходится производить различного рода манипуляции с данными (математические расчеты). Для этого использовался Excel.
Хотелось бы все эти расчеты запрограммировать в виде запросов к базе (СУБД MS SQL Server).
Просьба помочь: посоветуйте, пожалуйста, книгу, ссылку на сайт или тему форума, где описывается программирование сложных математических расчетов (вычислений по сложным формулам, где задействованы как поля базы, так отдельно рассчитанные переменные, константы и прочее) с применением синтаксиса SQL. Или просто, кто сталкивался с подобными проблемами, подскажите как удалось их решить.
Заранее спасибо.
12 июл 11, 22:57    [10964699]     Ответить | Цитировать Сообщить модератору
 Re: Различные математические расчеты.  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2680
Ну, в T-SQL у бас будут проблемы со сдвигами, XOR-ами, и прочими битовыми операциями...

Если же нет необходимости работать с битами, то проблем - решительно никаких. Ну кроме того, что прекомпилируемый T-SQL, как ни крути, будет считать медленнее компилируемого языка.
Так что тут у вас баланс соблюдать надо. Считать поближе к данным, но на T-SQL, или же считать на клиенте, но гонять данные через сокеты.
Тут выбор баланса между сложностью расчетов, и объемом данных.
...вызов функции в TSQL, например, стоит на порядки дороже, чем в компилируемом языке.
13 июл 11, 02:49    [10965225]     Ответить | Цитировать Сообщить модератору
 Re: Различные математические расчеты.  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2680
TarakaH4eG,

а... ну да... Если сравнивать с экселем, то вероятно (ну, я так думаю), особой просадки по быстродействию не будет...
В экселе - тоже интерпретатор.
Ну за исключением того, что эксель программировать попроще всё-таки.
там сложные модели рассчитываются сами, по формулам в ячейках. :)
13 июл 11, 02:55    [10965229]     Ответить | Цитировать Сообщить модератору
 Re: Различные математические расчеты.  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
TarakaH4eG, в SQL Server возможно использовать CLR и как следствие посчитать что угодно, даже то что средствами TSQL считается неудобно или плохо.
13 июл 11, 08:45    [10965460]     Ответить | Цитировать Сообщить модератору
 Re: Различные математические расчеты.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31994
TarakaH4eG
Просьба помочь: посоветуйте, пожалуйста, книгу, ссылку на сайт или тему форума, где описывается программирование сложных математических расчетов (вычислений по сложным формулам, где задействованы как поля базы, так отдельно рассчитанные переменные, константы и прочее) с применением синтаксиса SQL. Или просто, кто сталкивался с подобными проблемами, подскажите как удалось их решить.
А какие проблемы??? Всё делается так же, как в любом другом языке. Быстродействие, разумеется, меньше, чем в С++.

По сравнению с экселем будет конечно проще и быстрее.
13 июл 11, 12:49    [10966777]     Ответить | Цитировать Сообщить модератору
 Re: Различные математические расчеты.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31994
Makar4ik
Ну, в T-SQL у бас будут проблемы со сдвигами, XOR-ами, и прочими битовыми операциями...
Это с каких пор в T-SQL отменили сдвиги, XOR-ы, и прочие битовые операции???
13 июл 11, 12:50    [10966787]     Ответить | Цитировать Сообщить модератору
 Re: Различные математические расчеты.  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2680
alexeyvg
Makar4ik
Ну, в T-SQL у бас будут проблемы со сдвигами, XOR-ами, и прочими битовыми операциями...
Это с каких пор в T-SQL отменили сдвиги, XOR-ы, и прочие битовые операции???
вероятно я что-то пропустил, на 2000-м у меня помнится, были проблемы.
13 июл 11, 15:09    [10967928]     Ответить | Цитировать Сообщить модератору
 Re: Различные математические расчеты.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31994
Makar4ik
alexeyvg
Это с каких пор в T-SQL отменили сдвиги, XOR-ы, и прочие битовые операции???
вероятно я что-то пропустил, на 2000-м у меня помнится, были проблемы.
Да даже в 6-м всё это было, ничего не поменялось.

Нету только циклических сдвигов.
13 июл 11, 15:20    [10968030]     Ответить | Цитировать Сообщить модератору
 Re: Различные математические расчеты.  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2680
alexeyvg
По сравнению с экселем будет конечно проще и быстрее.
Не факт, что проще, и не факт, что быстрее.
SQL читает данные по страничкам. Эксель же использует прямую адресацию для ячеек. У него всё и сразу в мозгах, без индексов, статистики, ибо ему не надо. Каждая ячейка имеет свой адрес. (естессна не более 2 гб в 32 бит).
Формулы экселя в ячеечках - куда уж проще прописать.
Ну, эксельный бейсик не возьмусь сравнивать по скорости исполнения с T-SQL, помню только, что основная болячка там - прочитать и записать значение ячейки. Медленнее всего остального работает, даже если автопересчет отрубать.
13 июл 11, 15:30    [10968125]     Ответить | Цитировать Сообщить модератору
 Re: Различные математические расчеты.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31994
Makar4ik
Эксель же использует прямую адресацию для ячеек. У него всё и сразу в мозгах, без индексов, статистики, ибо ему не надо. Каждая ячейка имеет свой адрес. (естессна не более 2 гб в 32 бит).
Я честно говоря не знаю про внутреннюю организацию эксела, но мне в такое не верится. Думаю, что доступ к данным там организован намного сложнее.
Makar4ik
У него всё и сразу в мозгах, без индексов, статистики, ибо ему не надо.
"В мозгу" - этого я не понимаю. Думаю, что данные там просто в памяти, как и в сиквеле :-)

И ещё замечу - статистика и индексы в сиквеле придуманы не для замедления работы, а совсем наоборот :-)

Makar4ik
Ну, эксельный бейсик не возьмусь сравнивать по скорости исполнения с T-SQL, помню только, что основная болячка там - прочитать и записать значение ячейки. Медленнее всего остального работает, даже если автопересчет отрубать.
Противоречие - если "Каждая ячейка имеет свой адрес", то прописать в неё значение - один такт процессора :-) То есть несколько милиардов ячеек в секунду.
13 июл 11, 16:56    [10968922]     Ответить | Цитировать Сообщить модератору
 Re: Различные математические расчеты.  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2680
alexeyvg
И ещё замечу - статистика и индексы в сиквеле придуманы не для замедления работы, а совсем наоборот :-)
Да это-то понятно. Суть в том, что эксель - ни разу не СУРБД, там тупенько табличка. Отсюда - и доступ к данным проще и быстрее.

alexeyvg
Makar4ik
Ну, эксельный бейсик не возьмусь сравнивать по скорости исполнения с T-SQL, помню только, что основная болячка там - прочитать и записать значение ячейки. Медленнее всего остального работает, даже если автопересчет отрубать.
Противоречие - если "Каждая ячейка имеет свой адрес", то прописать в неё значение - один такт процессора :-) То есть несколько милиардов ячеек в секунду.
Спасибо, что поймали меня на противоречии. Отвечаю, я х его знает, товарищ майор. Но вот так...

Ну вот например. Заполнил только что 3 миллиона ячеек. Значение каждой зависит от трех предыдущих. В формуле корень, умножение и сложение. Ячейки эксель клонировал минуты две. Полный пересчет страницы длится около 4-х секунд.
13 июл 11, 17:58    [10969357]     Ответить | Цитировать Сообщить модератору
 Различные математические расчеты.  [new]
TarakaH4eG
Member

Откуда:
Сообщений: 2
Всем спасибо за информацию, но моя проблема не в том чтобы оценить что быстрее или удобнее, а я спрашивал о литературе и примерах, которые мне как чайнику помогут освоить программирование расчетов средствами SQL-Server.
14 июл 11, 22:29    [10976828]     Ответить | Цитировать Сообщить модератору
 Re: Различные математические расчеты.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31994
TarakaH4eG
Всем спасибо за информацию, но моя проблема не в том чтобы оценить что быстрее или удобнее, а я спрашивал о литературе и примерах, которые мне как чайнику помогут освоить программирование расчетов средствами SQL-Server.
Как обычно - BOL

Какая тут может быть литература? 4 арифметических операции, 3 логических и десяток функций. Вот и всё.
14 июл 11, 22:32    [10976842]     Ответить | Цитировать Сообщить модератору
 Re: Различные математические расчеты.  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2680
TarakaH4eG
Всем спасибо за информацию, но моя проблема не в том чтобы оценить что быстрее или удобнее, а я спрашивал о литературе и примерах, которые мне как чайнику помогут освоить программирование расчетов средствами SQL-Server.
Если все еще хватает экселя, то не стоит париться.
Если хочется странного, то надо экспериментировать, и да-да, читать BOL.
Ну, положить данные, посчитать, сравнить.
литература - ну... В книжный прийти, и посмотреть, что есть по синтаксису T-SQL.
Сам синтаксис запросов у вас по идее простейший, а математика у вас - от вас зависит...

Как я понимаю, вам хватало экселя потому что у вас ни разу не клиент-сервер. Да и в экселе функций математических встроенных - поболее, чем в MSSQL.
И тут вы внезапно хотите считать не на клиенте, а на сервере...
Используя при этом движок реляционной СУБД...
Ну... Выбирайте данные, и считайте...
15 июл 11, 01:18    [10977273]     Ответить | Цитировать Сообщить модератору
 Re: Различные математические расчеты.  [new]
voidpiligrim
Member

Откуда: Череповец
Сообщений: 32
я использую SQL c Excel. В базе храню данные, и некоторые простые расчёты. А экселе визуализация и сложные расчёты. Потом, если надо, рассчитанные данные обратно в SQL. Есть довольно много вещей неудобных в SQL. Лично мне не нравится отсутствие возможности читать данные на N записей вперёд/назад (самосклейку не предлагать - запросы получаются километровой длины). Все данные в экселе хранить тоже не удобно, так как база уже большая.
18 июл 11, 11:40    [10988142]     Ответить | Цитировать Сообщить модератору
 Re: Различные математические расчеты.  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
voidpiligrim
я использую SQL c Excel. В базе храню данные, и некоторые простые расчёты. А экселе визуализация и сложные расчёты. Потом, если надо, рассчитанные данные обратно в SQL. Есть довольно много вещей неудобных в SQL. Лично мне не нравится отсутствие возможности читать данные на N записей вперёд/назад (самосклейку не предлагать - запросы получаются километровой длины). Все данные в экселе хранить тоже не удобно, так как база уже большая.

Самосклейка - это че-то новое? Набирайтесь опыта работы с SQL Server и многие вопросы сразу же станут легко разрешимыми.
* Только про курсоры лучше не читайте ничего, пока не выработается стойкое отвращение к ним. Потом можно читать для общего развиртия и редких случаев необходимости применения.
18 июл 11, 11:45    [10988186]     Ответить | Цитировать Сообщить модератору
 Re: Различные математические расчеты.  [new]
Glory
Member

Откуда:
Сообщений: 104751
voidpiligrim
я использую SQL c Excel. В базе храню данные, и некоторые простые расчёты. А экселе визуализация и сложные расчёты. Потом, если надо, рассчитанные данные обратно в SQL. Есть довольно много вещей неудобных в SQL. Лично мне не нравится отсутствие возможности читать данные на N записей вперёд/назад (самосклейку не предлагать - запросы получаются километровой длины). Все данные в экселе хранить тоже не удобно, так как база уже большая.

По-моему, вы путаете понятие "математические рассчеты" с "алгоритмом рассчетов"
Понятно, что не все алгоритмы хорошо ложатся на реляционную модель
И прямое портирование таких алгоритмов разумеется будет трудоемким, а производительность - низкой
18 июл 11, 12:07    [10988364]     Ответить | Цитировать Сообщить модератору
 Re: Различные математические расчеты.  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2680
voidpiligrim
Все данные в экселе хранить тоже не удобно, так как база уже большая.
база размером до 2-х гиг хранится без проблем.
Только вот файл не быстро загружается или сохраняется, и ни о каких транзакциях речи идти не может, кроме полной перезаписи файла. Впрочем, похоже, тема себя исчерпала?
19 июл 11, 04:40    [10992605]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить