|
|
|
Недостатки Firebird
|
|||
|---|---|---|---|
|
#18+
На остальные вопросы есть ответы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 09:03 |
|
||
|
Недостатки Firebird
|
|||
|---|---|---|---|
|
#18+
Sokа вы попробуйте переименовать поле Таблицы, Таблицу или процедуру Делается это оч. просто. Создаю новое поле, таблицу или процедуру. И по зависимостям меняю. Тут как раз зависимости оч. пригождаются. Модератор: Тема перенесена из форума "InterBase, Firebird, Yaffil". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 09:07 |
|
||
|
Недостатки Firebird
|
|||
|---|---|---|---|
|
#18+
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 юзали ? если да, то чем не устроил ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 09:16 |
|
||
|
Недостатки Firebird
|
|||
|---|---|---|---|
|
#18+
Таблоид2) FBScanner юзали ? если да, то чем не устроил ? Скорее всего в 2.5 он уже не нужен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 09:19 |
|
||
|
Недостатки Firebird
|
|||
|---|---|---|---|
|
#18+
Sokа вы попробуйте переименовать поле Таблицы, Таблицу или процедуру в FB а потом в MSЕсли речь о рефакторинге системы только проектируемой, то сложностей почти нет: таблицу конечно переименовать не удасться, только через создание двойника, а все остальное - со свистом. IBExpert, заботливо генерирующий по запросу скрипты на все объекты со всеми зависимостями, еще более сократит время. Если же система в эксплуатации и обросла связями, то конечно клубок раскатывать придется дольше, но обычно это куда менее затратно по времени, по сравнению с переделкой вызовов затронутых объектов в клиентских приложениях. Поэтому систему проектировать надо с пеленок по-взрослому, чтобы не было мучительно больно... Вобщем, если в mssql это делается легче, то ему зачет, но рассматривать этот аспект как серьездный аргумент в сравнении - увольте, не позорьте себя как проектировщика-недоучку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 09:20 |
|
||
|
Недостатки Firebird
|
|||
|---|---|---|---|
|
#18+
Я пришел в этот форум не для того чтобы хаить одну СУБД, хвалить другую. Я хотел понять и изучить, понять сравниваю с тем, что я знаю. Получать от вас советы и правильное направление. Я не хотел никого назвать дебилами или уродами. Я наоборот, думал, раз столько людей пользуется этим продуктом, значить он стоит того, и я смогу в нем решить свои задачи. 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 из-за малого размера, из-за простой установки, из-за удобного переноса БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 09:27 |
|
||
|
Недостатки Firebird
|
|||
|---|---|---|---|
|
#18+
arniаспект как серьездный аргумент в сравнении да нее, эти сопли жувать что лучше что хуже - не хочу...(но почитал бы :-) ) просто высказал что реально не удобно в FB для меня ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 09:28 |
|
||
|
Недостатки Firebird
|
|||
|---|---|---|---|
|
#18+
Додумался!!! Процедура выбора с входными параметрами - это есть САМЫЙ ПАРАМЕТРИЗОВАННЫЙ ВЬЮ!!! Такое даже в Оракле нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 09:37 |
|
||
|
Недостатки Firebird
|
|||
|---|---|---|---|
|
#18+
akhanDimitry Sibiryakov Т.е. додуматься параметризовать запрос к view не получилось.. Не додумался. Может подскажете 1. Вы создали view 2. Использовали view в качестве источника данных (select from view) 3. Наложили фильтр в предложении where 4. Сервер не будет тупо молотить весь набор данных вьюшки, чтобы потом наложить фильтр. Он препарирует запрос так, что наложенные условия уйдут внутрь view, тем самым производительность не пострадает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 09:42 |
|
||
|
Недостатки Firebird
|
|||
|---|---|---|---|
|
#18+
akhanТакое даже в Оракле нет неужели? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 09:43 |
|
||
|
Недостатки Firebird
|
|||
|---|---|---|---|
|
#18+
akhanПросто хотел показать, какие бывает структуры: select acc_code, GetAccountBalance(acc_id, :BegDate) as BegBal, ... и что ? на ФБ вы этот запрос написали бы примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 09:44 |
|
||
|
Недостатки Firebird
|
|||
|---|---|---|---|
|
#18+
Таблоидне проще и не сложнее. Тут можно немного упростить. Сделать одну процедуру вместо двух, возвращающую 2 столбца. Тогда джоин будет один. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 09:51 |
|
||
|
Недостатки Firebird
|
|||
|---|---|---|---|
|
#18+
akhanДодумался!!! Процедура выбора с входными параметрами - это есть САМЫЙ ПАРАМЕТРИЗОВАННЫЙ ВЬЮ!!! Такое даже в Оракле нет. есть, причем 2х видов. 1. Заполняешь массив записей и возвращаешь 2. Выстреливаешь по одной записи (pipeline) с 9 версии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 10:25 |
|
||
|
Недостатки Firebird
|
|||
|---|---|---|---|
|
#18+
ТаблоидakhanПросто хотел показать, какие бывает структуры: select acc_code, GetAccountBalance(acc_id, :BegDate) as BegBal, ... и что ? на ФБ вы этот запрос написали бы примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Вы все таки упростили первоначальный запрос. Там в первом селекте 4 вызова - значить 4 left join-а понадобиться. Двадцать вызовов функции потребует двадцать left join-оф. А конструкция left join … on 1=1(!!!) – это выход из положение, а не норма. Все равно я за то, чтобы, как сказал один известный политик, отделить мухи от котлет. Процедура – это набор действии, а таблица и вью - набор данных. Но, спасибо Вам, за подсказ как обойти нехватку функции в подобном запросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 10:35 |
|
||
|
Недостатки Firebird
|
|||
|---|---|---|---|
|
#18+
akhanВы все таки упростили первоначальный запрос. Там в первом селекте 4 вызова - значить 4 left join-а понадобиться. Двадцать вызовов функции потребует двадцать left join-оф. А конструкция left join … on 1=1(!!!) – это выход из положение, а не норма. Все равно я за то, чтобы, как сказал один известный политик, отделить мухи от котлет. Процедура – это набор действии, а таблица и вью - набор данных. Но, спасибо Вам, за подсказ как обойти нехватку функции в подобном запросе.С тем, что это некрасиво, спорить не буду. Но есть другой факт: в треккере FB хотелка по организации PSQL-функций лежит многие годы, и от релиза к релизу план её реализации отодвигается на потом. Т.к. FF вобщем-то демократичное и саморегулируемое образование, то объяснение находится лишь одно: эта фича никому по большому счету не нужна, за неё просто не голосуют, находя более насущные потребности. Удобно ли с ней - несомненно. Можно ли без неё жить и плодотворно работать - также несомненно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 10:41 |
|
||
|
Недостатки Firebird
|
|||
|---|---|---|---|
|
#18+
akhanТам в первом селекте 4 вызова - значить 4 left join-а понадобиться Топик невнимательно читаем FreemanZAVТаблоидне проще и не сложнее. Тут можно немного упростить. Сделать одну процедуру вместо двух, возвращающую 2 столбца. Тогда джоин будет один. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 10:44 |
|
||
|
Недостатки Firebird
|
|||
|---|---|---|---|
|
#18+
akhan Процедура должна быть процедурой - выполнять определенные действия. Конечно и в ней бывает OUT параметры, но не целые наборы записей! 2. Нет обычных PSQL-ных функции. Т.е. нельзя создать функции и вызывать из прямо в селекте - в списке полей. в условии. включать в выражении. Я наоборот после FB плевался на эти различия в MSSQL - процедуры, табличные/скалярные функции... При том на табличную функцию наложены некоторые ограничения(например, невозможность применять Dynamic-SQL). В FB все зависит от выходных параметров, будет ли это таблица или скалярное значение, или процедура с выходными параметрами. И применять ее(ХП) можно где угодно(в зависимости от возвращемого значения), в Select, From, Where... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 10:46 |
|
||
|
Недостатки Firebird
|
|||
|---|---|---|---|
|
#18+
FreemanZAVakhanТам в первом селекте 4 вызова - значить 4 left join-а понадобиться Топик невнимательно читаем FreemanZAVТаблоидне проще и не сложнее. Тут можно немного упростить. Сделать одну процедуру вместо двух, возвращающую 2 столбца. Тогда джоин будет один. А тут не надо модифицировать процедуру под каждый запрос. Есть некий набор(пакет) готовых отлаженных функции(процедур), а есть куча отчетов содержащие кучу разных запросов. И в этих запросах должны вызывается эти функции. Как Вам такая ситуация? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 10:49 |
|
||
|
Недостатки Firebird
|
|||
|---|---|---|---|
|
#18+
akhanFreemanZAVakhanТам в первом селекте 4 вызова - значить 4 left join-а понадобиться Топик невнимательно читаем FreemanZAVТаблоидне проще и не сложнее. Тут можно немного упростить. Сделать одну процедуру вместо двух, возвращающую 2 столбца. Тогда джоин будет один. А тут не надо модифицировать процедуру под каждый запрос. Есть некий набор(пакет) готовых отлаженных функции(процедур), а есть куча отчетов содержащие кучу разных запросов. И в этих запросах должны вызывается эти функции. Как Вам такая ситуация? Всё как раз зависит от конкретной ситуации. Но если несколько процедур использутся часто вместе, то их можно объединить в одну, и "включать/выключать" флагами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 10:54 |
|
||
|
Недостатки Firebird
|
|||
|---|---|---|---|
|
#18+
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 ... не компилится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 10:57 |
|
||
|
Недостатки Firebird
|
|||
|---|---|---|---|
|
#18+
Megabyteakhan Процедура должна быть процедурой - выполнять определенные действия. Конечно и в ней бывает OUT параметры, но не целые наборы записей! 2. Нет обычных PSQL-ных функции. Т.е. нельзя создать функции и вызывать из прямо в селекте - в списке полей. в условии. включать в выражении. Я наоборот после FB плевался на эти различия в MSSQL - процедуры, табличные/скалярные функции... При том на табличную функцию наложены некоторые ограничения(например, невозможность применять Dynamic-SQL). В FB все зависит от выходных параметров, будет ли это таблица или скалярное значение, или процедура с выходными параметрами. И применять ее(ХП) можно где угодно(в зависимости от возвращемого значения), в Select, From, Where... Напишите пример вызова в разделе select и where... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 11:01 |
|
||
|
Недостатки Firebird
|
|||
|---|---|---|---|
|
#18+
akhanMegabyteakhan Процедура должна быть процедурой - выполнять определенные действия. Конечно и в ней бывает OUT параметры, но не целые наборы записей! 2. Нет обычных PSQL-ных функции. Т.е. нельзя создать функции и вызывать из прямо в селекте - в списке полей. в условии. включать в выражении. Я наоборот после FB плевался на эти различия в MSSQL - процедуры, табличные/скалярные функции... При том на табличную функцию наложены некоторые ограничения(например, невозможность применять Dynamic-SQL). В FB все зависит от выходных параметров, будет ли это таблица или скалярное значение, или процедура с выходными параметрами. И применять ее(ХП) можно где угодно(в зависимости от возвращемого значения), в Select, From, Where... Напишите пример вызова в разделе select и where... Неугомонный человек, нет бы документацию покурить на досуге ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 11:19 |
|
||
|
Недостатки Firebird
|
|||
|---|---|---|---|
|
#18+
akhanТам в первом селекте 4 вызова - значить 4 left join-а понадобиться. Двадцать вызовов функции потребует двадцать left join-оф. выполнение одного и того же кода будет 4 раза - что у вас, что в приведенном запросе. Какая разница, как синтаксически это оформлено, в виде "вызовов" или в виде лефт джойнов ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 12:31 |
|
||
|
Недостатки Firebird
|
|||
|---|---|---|---|
|
#18+
ТаблоидakhanТам в первом селекте 4 вызова - значить 4 left join-а понадобиться. Двадцать вызовов функции потребует двадцать left join-оф. выполнение одного и того же кода будет 4 раза - что у вас, что в приведенном запросе. Какая разница, как синтаксически это оформлено, в виде "вызовов" или в виде лефт джойнов ? Когда я привел пример, я ошибся, забыл отредактировать скопированные строки. Вот что я хотел выложить: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 13:32 |
|
||
|
Недостатки Firebird
|
|||
|---|---|---|---|
|
#18+
Короче, хочу угомониться... Вот что себе уяснил: 1. Для параметризованных представлении использую процедуры выбора с входными параметрами. 2. Для замены вызовов функции для маленьких селектов использую лефт жойны или по ситуации процедуры вызовов. 3. Проблема решена - работают подзапросы в разделе FROM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 13:38 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=36361211&tid=1552842]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 379ms |

| 0 / 0 |
