powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Недостатки Firebird
25 сообщений из 189, страница 2 из 8
Недостатки Firebird
    #36360417
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На остальные вопросы есть ответы?
...
Рейтинг: 0 / 0
Недостатки Firebird
    #36360420
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sokа вы попробуйте переименовать поле Таблицы, Таблицу или процедуру
Делается это оч. просто. Создаю новое поле, таблицу или процедуру. И по зависимостям меняю. Тут как раз зависимости оч. пригождаются.

Модератор: Тема перенесена из форума "InterBase, Firebird, Yaffil".
...
Рейтинг: 0 / 0
Недостатки Firebird
    #36360438
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SokТаблоид[
насчет установки МС - руки кривые) ставится легко...
чего не хватает в FB (как бывший МСовец)
- очень убивает отсутствие нормального профайлера - что не позволяет делать нормальный дебаг...
...
инструкция с сайта МС по установке всего лишь инструмента - SSMS 2008:
MS SQL 2008 install instructions
Note: You must have administrative rights on the computer to install Microsoft SQL Server 2008 Management Studio Express.
We recommended that you read the Release Notes and Readme before installing Microsoft SQL Server 2008 Management Studio Express.

Step 1: Download and install Microsoft .Net Framework 3.5 SP1.
Step 2 Download and install Windows Installer 4.5.
Step 3 Download and install Windows PowerShell 1.0.
Note: For help on installing Windows Powershell 1.0 see the following KB articles:

# 926139: English PowerShell 1.0 for Windows
# 926140: Localized PowerShell 1.0 for Windows XP and Windows 2003
# 926141: Multilanguage User Interface for PowerShell 1.0 for Windows XP and Windows 2003
# 928439: PowerShell 1.0 for Vista (includes all languages)

Step 4: Download SQL Server 2008 Management Studio Express by clicking the appropriate link later on this page. To start the installation immediately, click Run. To install SQL Server Express at a later time, click Save.
Самое забавное, что если вы качнёте SS2008XE _без_ адвансед фитч (т.е. без студии), то на Win-2003 server sp1 вы дальше эту студию не установите (проверено дважды :-)). Так что качайте НЕ отдельно студию и SS2008XE, а всё вместе (SQLEXPRADV_x86_ENU.exe)
Кроме того, не забудьте качнуть:
schemacomparesqlru.exe
wpilauncher_n.exe
dotnetfx35setup.exe
MSXML 6.0 Parser (KB933579)
service pack sp2: "WindowsServer2003-KB914961-SP2-x86-RUS.exe" (360 метров)
"(4Studio-MS_installer4-5) WindowsServer2003-KB942288-v4-x86.exe"
(PowerShell)WindowsServer2003-KB926139-v2-x86-ENU.exe

Затем, когда установите студию-2008, будьте любезны пропатчить её.
Блин, эти танцы - только для установки ИНСТРУМЕНТА. Примерно то же самое надо делать для установки самого SS.
Ну да, всё в конечном счете установится. Но вы затратите на это МИНИМУМ 1 час (если делаете это не первый раз и у вас быстрый интернет). Не многовато ли ?

2) FBScanner юзали ? если да, то чем не устроил ?
...
Рейтинг: 0 / 0
Недостатки Firebird
    #36360442
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид2) FBScanner юзали ? если да, то чем не устроил ?
Скорее всего в 2.5 он уже не нужен
...
Рейтинг: 0 / 0
Недостатки Firebird
    #36360444
Фотография arni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sokа вы попробуйте переименовать поле Таблицы, Таблицу или процедуру в FB а потом в MSЕсли речь о рефакторинге системы только проектируемой, то сложностей почти нет: таблицу конечно переименовать не удасться, только через создание двойника, а все остальное - со свистом. IBExpert, заботливо генерирующий по запросу скрипты на все объекты со всеми зависимостями, еще более сократит время.
Если же система в эксплуатации и обросла связями, то конечно клубок раскатывать придется дольше, но обычно это куда менее затратно по времени, по сравнению с переделкой вызовов затронутых объектов в клиентских приложениях. Поэтому систему проектировать надо с пеленок по-взрослому, чтобы не было мучительно больно...
Вобщем, если в mssql это делается легче, то ему зачет, но рассматривать этот аспект как серьездный аргумент в сравнении - увольте, не позорьте себя как проектировщика-недоучку.
...
Рейтинг: 0 / 0
Недостатки Firebird
    #36360454
akhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я пришел в этот форум не для того чтобы хаить одну СУБД, хвалить другую. Я хотел понять и изучить, понять сравниваю с тем, что я знаю. Получать от вас советы и правильное направление. Я не хотел никого назвать дебилами или уродами. Я наоборот, думал, раз столько людей пользуется этим продуктом, значить он стоит того, и я смогу в нем решить свои задачи.

arni Похоже, что освоив один продукт, вы заимели Эталон.
Может быть(скорее) arni прав.

Dimitry Sibiryakov Т.е. додуматься параметризовать запрос к view не получилось..
Не додумался. Может подскажете

Dimitry SibiryakovДа редко кому в голову придёт такой бессмысленный запрос.
akhan3. Не смог выполнить подзапрос вида select b.* from (select * from a) b where b.field=100;
Получилось выполнить запрос с подзапросом в разделе FROM. В этот я был неправ.
Для Dimitry Sibiryakov хочу сказать, что это не совсем бессмысленный запрос. Я просто привел маленький пример. На деле бывает такие большие и сложные подзапросы в разделе FROM.

2 Таблоид
Я кажется с «чистым» параметризованным представлением в Оракле чуть переборщил . То, что показал дядя Том, это - выход из положении. А Ваш пример с left join-ом - это тоже своего рода выход из положении. Если в и разделе select, и в разделе where придется использовать по несколько разных функции, то каким сложным будет запрос приведенный к left join-ам, я не представляю. Вы можете подсказать, что необходмо такие сложные запросы перевести в процедуры с выбором. Но бывает ситуации, когда так не получиться, и/или не нужно плодить процедуры для каждого такого запроса. Реально у меня есть select-ы с множеством вызовов финансовых и других функции, с многими подзапросами в разных разделах и многими объединениями, который занимает несколько страниц A4 с размером шрифта 10.
Это простой пример, но не реальный. Просто хотел показать, какие бывает структуры:
select acc_code,
GetAccountBalance(acc_id, :BegDate) as BegBal,
GetAccountDebitSum(acc_id, :BegDate, :EndDate) as DebitSum,
GetAccountDebitSum(acc_id, :BegDate, :EndDate) as DebitSum,
GetAccountBalance(acc_id, :BegDate) as BegBal,
(select count(*) from accounts where tax_code = '1000') as AccCnt
from accounts a,
(select operdate
from opers o
inner joun dep d on o.dep_id=d.id
where d.code='200200'
and GetDepSum(d.id)>1000000) ddd
where
a.OpenDate=ddd.OperDate
and GetCurrentUserName()='AAA'
По поводу процедуры выбора. Все СУБД отклоняются от стандарта. И MSSQL, и Oracle, и остальные. Я стандарт не читал, но думаю, что его разработчики после слова FROM, наверное, думали некий естественный набор данных, как таблица, вью или подзапрос, а не процедуру. Так перевернуть смысл процедуры, это как голову назвать задом. В этом я также не одобряю MSSQL. Но, смысл моего прихода в форум не в этом, как в начале писал.

Я давно(очень) долго работал и с FoxPro 2.0, и с MSAccess 97, давно и чут-чуть в MSSQL6.5. В последние годы сижу на Оракле. Решил изучить FireBird из-за малого размера, из-за простой установки, из-за удобного переноса БД.
...
Рейтинг: 0 / 0
Недостатки Firebird
    #36360455
Sok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arniаспект как серьездный аргумент в сравнении
да нее, эти сопли жувать что лучше что хуже - не хочу...(но почитал бы :-) )
просто высказал что реально не удобно в FB для меня ...
...
Рейтинг: 0 / 0
Недостатки Firebird
    #36360477
akhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Додумался!!!
Процедура выбора с входными параметрами - это есть САМЫЙ ПАРАМЕТРИЗОВАННЫЙ ВЬЮ!!!
Такое даже в Оракле нет.
...
Рейтинг: 0 / 0
Недостатки Firebird
    #36360481
Фотография arni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akhanDimitry Sibiryakov Т.е. додуматься параметризовать запрос к view не получилось..
Не додумался. Может подскажете
1. Вы создали view
2. Использовали view в качестве источника данных (select from view)
3. Наложили фильтр в предложении where
4. Сервер не будет тупо молотить весь набор данных вьюшки, чтобы потом наложить фильтр. Он препарирует запрос так, что наложенные условия уйдут внутрь view, тем самым производительность не пострадает.
...
Рейтинг: 0 / 0
Недостатки Firebird
    #36360484
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akhanТакое даже в Оракле нет
неужели?
...
Рейтинг: 0 / 0
Недостатки Firebird
    #36360490
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akhanПросто хотел показать, какие бывает структуры:
select acc_code,
GetAccountBalance(acc_id, :BegDate) as BegBal, ... и что ? на ФБ вы этот запрос написали бы примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select a.acc_code, gb.rsult BegBal, gd.result DebitSum
from accounts a
left join GetAccountBalance(a.acc_id, :BegDate) gb on  1 = 1 
left join GetAccountDebitSum(a.acc_id, :BegDate, :EndDate) gd on  1 = 1 
join
(select operdate
   from opers o
  join dep d on o.dep_id=d.id
  left join GetCurrentUserName() gu on  1 = 1 
  left join GetDepSum(d.id) gs on  1 = 1 
  where d.code='200200' and gs.result> 1000000  and gu.result='AAA'
) ddd
on a.OpenDate=ddd.OperDate
на мой взгляд, не проще и не сложнее. И не очень-то много различий.
...
Рейтинг: 0 / 0
Недостатки Firebird
    #36360503
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидне проще и не сложнее.
Тут можно немного упростить. Сделать одну процедуру вместо двух, возвращающую 2 столбца. Тогда джоин будет один.
...
Рейтинг: 0 / 0
Недостатки Firebird
    #36360584
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akhanДодумался!!!
Процедура выбора с входными параметрами - это есть САМЫЙ ПАРАМЕТРИЗОВАННЫЙ ВЬЮ!!!
Такое даже в Оракле нет.
есть, причем 2х видов.
1. Заполняешь массив записей и возвращаешь
2. Выстреливаешь по одной записи (pipeline) с 9 версии
...
Рейтинг: 0 / 0
Недостатки Firebird
    #36360618
akhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидakhanПросто хотел показать, какие бывает структуры:
select acc_code,
GetAccountBalance(acc_id, :BegDate) as BegBal, ... и что ? на ФБ вы этот запрос написали бы примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select a.acc_code, gb.rsult BegBal, gd.result DebitSum
from accounts a
left join GetAccountBalance(a.acc_id, :BegDate) gb on  1 = 1 
left join GetAccountDebitSum(a.acc_id, :BegDate, :EndDate) gd on  1 = 1 
join
(select operdate
   from opers o
  join dep d on o.dep_id=d.id
  left join GetCurrentUserName() gu on  1 = 1 
  left join GetDepSum(d.id) gs on  1 = 1 
  where d.code='200200' and gs.result> 1000000  and gu.result='AAA'
) ddd
on a.OpenDate=ddd.OperDate
на мой взгляд, не проще и не сложнее. И не очень-то много различий.

Вы все таки упростили первоначальный запрос. Там в первом селекте 4 вызова - значить 4 left join-а понадобиться. Двадцать вызовов функции потребует двадцать left join-оф. А конструкция left join … on 1=1(!!!) – это выход из положение, а не норма. Все равно я за то, чтобы, как сказал один известный политик, отделить мухи от котлет. Процедура – это набор действии, а таблица и вью - набор данных. Но, спасибо Вам, за подсказ как обойти нехватку функции в подобном запросе.
...
Рейтинг: 0 / 0
Недостатки Firebird
    #36360638
Фотография arni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akhanВы все таки упростили первоначальный запрос. Там в первом селекте 4 вызова - значить 4 left join-а понадобиться. Двадцать вызовов функции потребует двадцать left join-оф. А конструкция left join … on 1=1(!!!) – это выход из положение, а не норма. Все равно я за то, чтобы, как сказал один известный политик, отделить мухи от котлет. Процедура – это набор действии, а таблица и вью - набор данных. Но, спасибо Вам, за подсказ как обойти нехватку функции в подобном запросе.С тем, что это некрасиво, спорить не буду. Но есть другой факт: в треккере FB хотелка по организации PSQL-функций лежит многие годы, и от релиза к релизу план её реализации отодвигается на потом. Т.к. FF вобщем-то демократичное и саморегулируемое образование, то объяснение находится лишь одно: эта фича никому по большому счету не нужна, за неё просто не голосуют, находя более насущные потребности. Удобно ли с ней - несомненно. Можно ли без неё жить и плодотворно работать - также несомненно.
...
Рейтинг: 0 / 0
Недостатки Firebird
    #36360647
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akhanТам в первом селекте 4 вызова - значить 4 left join-а понадобиться
Топик невнимательно читаем
FreemanZAVТаблоидне проще и не сложнее.
Тут можно немного упростить. Сделать одну процедуру вместо двух, возвращающую 2 столбца. Тогда джоин будет один.
...
Рейтинг: 0 / 0
Недостатки Firebird
    #36360653
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akhan Процедура должна быть процедурой - выполнять определенные действия. Конечно и в ней бывает OUT параметры, но не целые наборы записей!
2. Нет обычных PSQL-ных функции. Т.е. нельзя создать функции и вызывать из прямо в селекте - в списке полей. в условии. включать в выражении.

Я наоборот после FB плевался на эти различия в MSSQL - процедуры, табличные/скалярные функции... При том на табличную функцию наложены некоторые ограничения(например, невозможность применять Dynamic-SQL).
В FB все зависит от выходных параметров, будет ли это таблица или скалярное значение, или процедура с выходными параметрами.
И применять ее(ХП) можно где угодно(в зависимости от возвращемого значения), в Select, From, Where...
...
Рейтинг: 0 / 0
Недостатки Firebird
    #36360660
akhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreemanZAVakhanТам в первом селекте 4 вызова - значить 4 left join-а понадобиться
Топик невнимательно читаем
FreemanZAVТаблоидне проще и не сложнее.
Тут можно немного упростить. Сделать одну процедуру вместо двух, возвращающую 2 столбца. Тогда джоин будет один.

А тут не надо модифицировать процедуру под каждый запрос. Есть некий набор(пакет) готовых отлаженных функции(процедур), а есть куча отчетов содержащие кучу разных запросов. И в этих запросах должны вызывается эти функции. Как Вам такая ситуация?
...
Рейтинг: 0 / 0
Недостатки Firebird
    #36360670
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akhanFreemanZAVakhanТам в первом селекте 4 вызова - значить 4 left join-а понадобиться
Топик невнимательно читаем
FreemanZAVТаблоидне проще и не сложнее.
Тут можно немного упростить. Сделать одну процедуру вместо двух, возвращающую 2 столбца. Тогда джоин будет один.

А тут не надо модифицировать процедуру под каждый запрос. Есть некий набор(пакет) готовых отлаженных функции(процедур), а есть куча отчетов содержащие кучу разных запросов. И в этих запросах должны вызывается эти функции. Как Вам такая ситуация?
Всё как раз зависит от конкретной ситуации. Но если несколько процедур использутся часто вместе, то их можно объединить в одну, и "включать/выключать" флагами
...
Рейтинг: 0 / 0
Недостатки Firebird
    #36360681
akhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabasakhanДодумался!!!
Процедура выбора с входными параметрами - это есть САМЫЙ ПАРАМЕТРИЗОВАННЫЙ ВЬЮ!!!
Такое даже в Оракле нет.
есть, причем 2х видов.
1. Заполняешь массив записей и возвращаешь
2. Выстреливаешь по одной записи (pipeline) с 9 версии

Я имел ввиду что в Оракле нет VIEW с параметрами. А писать функцию возвращающий массив - не приходилось. Сейчас пробовал писать:
create or replace function AAA(a varchar2) return TABLE OF varchar2 is
...
или
create or replace function AAA(a varchar2) return varray(10) OF varchar2 is
...
не компилится.
...
Рейтинг: 0 / 0
Недостатки Firebird
    #36360694
akhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Megabyteakhan Процедура должна быть процедурой - выполнять определенные действия. Конечно и в ней бывает OUT параметры, но не целые наборы записей!
2. Нет обычных PSQL-ных функции. Т.е. нельзя создать функции и вызывать из прямо в селекте - в списке полей. в условии. включать в выражении.

Я наоборот после FB плевался на эти различия в MSSQL - процедуры, табличные/скалярные функции... При том на табличную функцию наложены некоторые ограничения(например, невозможность применять Dynamic-SQL).
В FB все зависит от выходных параметров, будет ли это таблица или скалярное значение, или процедура с выходными параметрами.
И применять ее(ХП) можно где угодно(в зависимости от возвращемого значения), в Select, From, Where...

Напишите пример вызова в разделе select и where...
...
Рейтинг: 0 / 0
Недостатки Firebird
    #36360764
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akhanMegabyteakhan Процедура должна быть процедурой - выполнять определенные действия. Конечно и в ней бывает OUT параметры, но не целые наборы записей!
2. Нет обычных PSQL-ных функции. Т.е. нельзя создать функции и вызывать из прямо в селекте - в списке полей. в условии. включать в выражении.

Я наоборот после FB плевался на эти различия в MSSQL - процедуры, табличные/скалярные функции... При том на табличную функцию наложены некоторые ограничения(например, невозможность применять Dynamic-SQL).
В FB все зависит от выходных параметров, будет ли это таблица или скалярное значение, или процедура с выходными параметрами.
И применять ее(ХП) можно где угодно(в зависимости от возвращемого значения), в Select, From, Where...

Напишите пример вызова в разделе select и where...
Неугомонный человек, нет бы документацию покурить на досуге
...
Рейтинг: 0 / 0
Недостатки Firebird
    #36361007
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akhanТам в первом селекте 4 вызова - значить 4 left join-а понадобиться. Двадцать вызовов функции потребует двадцать left join-оф. выполнение одного и того же кода будет 4 раза - что у вас, что в приведенном запросе. Какая разница, как синтаксически это оформлено, в виде "вызовов" или в виде лефт джойнов ?
...
Рейтинг: 0 / 0
Недостатки Firebird
    #36361211
akhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидakhanТам в первом селекте 4 вызова - значить 4 left join-а понадобиться. Двадцать вызовов функции потребует двадцать left join-оф. выполнение одного и того же кода будет 4 раза - что у вас, что в приведенном запросе. Какая разница, как синтаксически это оформлено, в виде "вызовов" или в виде лефт джойнов ?

Когда я привел пример, я ошибся, забыл отредактировать скопированные строки. Вот что я хотел выложить:
Код: plaintext
1.
2.
3.
4.
5.
6.
select acc_code, 
GetAccountBalance(acc_id, :BegDate) as BegBal, 
GetAccountDebitSum(acc_id, :BegDate, :EndDate) as DebitSum,
GetAccountCreditSum(acc_id, :BegDate, :EndDate) as DebitSum,
GetAccountBalance(acc_id, :EndDate) as EndBal,
...
тут на самом деле четыре разных вызовов.
...
Рейтинг: 0 / 0
Недостатки Firebird
    #36361233
akhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче, хочу угомониться...
Вот что себе уяснил:
1. Для параметризованных представлении использую процедуры выбора с входными параметрами.
2. Для замены вызовов функции для маленьких селектов использую лефт жойны или по ситуации процедуры вызовов.
3. Проблема решена - работают подзапросы в разделе FROM.
...
Рейтинг: 0 / 0
25 сообщений из 189, страница 2 из 8
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Недостатки Firebird
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]