Расшифруй, и я расскажу, почему оно в MySQL нафиг никому не надо
Ну BI - это платформа, включающая в себя SQL Server Integration Service, SQL Server Analisys Service и SQL Server Reporting Service, соответственно интеграция, анализ и отчетность - основные составляющие бизнес-процесов.
В MySQL оно нафиг не надо потому что там где появляются такие требования MySQL уже не рассматривают как вариант средства для хранения данных.
А в говносайтах за 5 минут ала php интеграция и отчетность коненчо нах не нада.
Ну да. Насколько я понимаю, ты решил вообще отказаться от серверного слоя, оставив голую СУБД? Ну и чем это отличается от написания гуя на Оракле?
Не полностью, возможно просто немного облегчить его.
Я не знаю чем это отличается от написания гуя на Оракле посколько плохо представляю что есть общего между открытия http-доступа к базе данных средствами самого сервера баз данных и написанием гуя на Оракле. Может то что SQL Server и Oracle - НЕ опенсорс.
Вообще тема не лишена смысла так как чем больше логики переносишь в базу данных, тем больше процедур становятся обычными шлюзами между курсором и xml, а с этим прекрасно справится и сам SQL Server.
Ну BI - это платформа, включающая в себя SQL Server Integration Service, SQL Server Analisys Service и SQL Server Reporting Service, соответственно интеграция, анализ и отчетность - основные составляющие бизнес-процесов.
Более чем уверен, что существуют third-party продукты для этого дела, заточенные под MySQL, и AB, конечно же, правильно делает, что не пытается сесть на два горшка сразу.
Не полностью, возможно просто немного облегчить его.
Путем утяжеления базы?
плохо представляю что есть общего между открытия http-доступа к базе данных средствами самого сервера баз данных и написанием гуя на Оракле.
Решение задачи, для которой продукт не предназначен - аналог: забивать гвозди майкроскопом.
чем больше логики переносишь в базу данных, тем больше процедур становятся обычными шлюзами между курсором и xml, а с этим прекрасно справится и сам SQL Server.
С каких это пор перенос курсоров в XML - хоть сколь-нибудь тяжелый процесс? Мне вот больше интересно - какие средства, хотя бы приближающиеся по удобству к отладке кода в VS, придумала MS для ХП?
Более чем уверен, что существуют third-party продукты для этого дела, заточенные под MySQL, и AB, конечно же, правильно делает, что не пытается сесть на два горшка сразу.
Я более чем уверен что на вопрос о более продвинутых чес минимальные возможностях любого опен-сорс проекта я получу ответ "есть какие-то third-пати компоненты" или "увере что есть какие-то third-пати компоненты"
Путем утяжеления базы?
Где ж тут утяжеление?
С каких это пор перенос курсоров в XML - хоть сколь-нибудь тяжелый процесс?
Кто сказал что тяжелый? Простой! Настолько простой, что для этого даже не стоит выделять отдельный слой, более того даже не нужно писать код.
Мне вот больше интересно - какие средства, хотя бы приближающиеся по удобству к отладке кода в VS, придумала MS для ХП?
Ну вобщем-то есть таковые средства - интегрированые в саму Visual Studio 2005 со всеми вытекающими. Разумеется, они не дотягивают до уровня отладки управляемого кода, тем не менее их достаточно для отладки TSQL.
Отладку можно проводить на локальном компьютере, можно также и на удаленном.
В SQL Server 2000 средство отладки кстати тоже было и было оно встроено в Query Analizer. Правда там его даже проще юзать было ИМХО.
Я правда еще не знаю, какими средствми отладки располагает Visual Studio Team System for DAtabase Professionals - продукт вышел недавно и к сожалению я не успел с ним поиграться, но виденые мною возможности на презентации просто впечатляют - как только появится свободное время, обязательно разберусь с ним.
В любом случае в этом инструменте средства отладки будут либо такими же как в Visual Studio 2005, либо лучше.
Я более чем уверен что на вопрос о более продвинутых чес минимальные возможностях любого опен-сорс проекта я получу ответ "есть какие-то third-пати компоненты" или "увере что есть какие-то third-пати компоненты"
Правильно, потому что все, что востребовано и не слишком трудоемко, все уже давно написано, лицензировано под GNU и открыто в общий доступ. Поскольку я нужды в составлении отчетов на MySQL не испытывал, то я и не могу дать тебе без гугла ссылку, а ссылку на гугл ты и так знаешь. Тем не менее, более чем уверен, что если ты задашь этот вопрос на форуме MySQL, разработчики не начнут посыпать голову пеплом и кричать "О, как мы могли упустить из виду такую нужную вещь!!!", а дадут ссылку на готовый продукт, а скорее всего, и не на один.
Где ж тут утяжеление?
Добавление ХП в базу не может в принципе ее облегчить.
Кто сказал что тяжелый? Простой! Настолько простой, что для этого даже не стоит выделять отдельный слой, более того даже не нужно писать код.
Вот и я говорю, что простой, зачем писать отдельный код для каждой задачи? Возьми уже написанный, открытый, и правь его по своему усмотрению, если вдруг в каком-то проекте такое понадобится. Так где же выгода?
Разумеется, они не дотягивают до уровня отладки управляемого кода, тем не менее их достаточно для отладки TSQL.
Для отладки программ на ассемблере тоже можно пользоваться виндовым debug, но это неудобно. Я предпочитаю удобные среды, а если таких для какого-то языка нет, то предпочитаю на нем не писать.
Добавление ХП в базу не может в принципе ее облегчить.
Ты просто не видел базы с 100 000 - 200 000 хранимых процедур. А они есть. И они рулят.
Возьми уже написанный, открытый,
При этих словах вспоминается vbaccelerator, редкостная помойка с глючными контролами. Увольте; либо полностью свой, либо покупка качества. Причём на первое в 99% процентах случаев физически нет времени.
Добавление ХП в базу не может в принципе ее облегчить.
ужос. У меня возникает впечатление что меня всю жизнь обманывали!!!
То есть нагрузка базы данных хранимыми процедурами - это есть ее утяжеление? катаюсь под столом
Вот и я говорю, что простой, зачем писать отдельный код для каждой задачи? Возьми уже написанный, открытый, и правь его по своему усмотрению, если вдруг в каком-то проекте такое понадобится. Так где же выгода?
блин, меня убивают слова "возьми написаный открытый". Кем он написаный? Откуда я знаю что за ламеры прячутся за названием какой-то группы? И вообще зачем писать код для преобразования курсора в xml - это настраивается (по крайней мере в SQL Server) мышкой за несколько минут, а ты мне предлагаешь разбираться с очередной поделкой энтузиастов Пусть в ней хоть 100 раз будет открыт код, мне это не поможет потому что код, который не работает я не намерен сам исправлять - я его просто выкину.
Для отладки программ на ассемблере тоже можно пользоваться виндовым debug, но это неудобно. Я предпочитаю удобные среды, а если таких для какого-то языка нет, то предпочитаю на нем не писать.
То чть предлагает Microsoft для отладки TSQL нельзя назвать неудобной. Там нет edit-and-continue, нет еще нескольких интересных вещей, появившихся в VS 2003/2005, но прошу прощения, в других средствах разаботки даже такого набора возможностей нету!
Сильно MySQL позволяет отлаживать хранимые процедуры на удаленной машине? А вообще позволяет? И как там с удобством?
Про debug - сочувствую, но ты, надеюсь, не предлагаешь отлаживать TSQL средствами этой поделки?
Я предпочитаю удобные среды, а если таких для какого-то языка нет, то предпочитаю на нем не писать.
Пробовал тот же PHP пошагово выполнять? Жуть... а писать приходится
Возьми уже написанный, открытый,
При этих словах вспоминается vbaccelerator, редкостная помойка с глючными контролами. Увольте; либо полностью свой, либо покупка качества. Причём на первое в 99% процентах случаев физически нет времени.
Но есть и хорошие вещи, и совершенно непричём где они есть vbaccelerator, или vbnet... Просто они есть.
А про отладку MySQL - действтельно туго, кто бы чего не говорил... нормальных средств я так и не нашёл...
Ты просто не видел базы с 100 000 - 200 000 хранимых процедур. А они есть.
Ага, и база становится от этого легче? И где, кстати, нужно столько ХП? И кто их пишет? И действительно ли все они нужны?
Увольте; либо полностью свой, либо покупка качества.
Ты думаешь, что за деньги продукт всегда качественный? ) Посмотри на Windows
То есть нагрузка базы данных хранимыми процедурами - это есть ее утяжеление?
А ты хочешь сказать, что добавляя код ХП к БД, ты ее тем самым облегчаешь? Ничего не удаляя взамен?
И вообще зачем писать код для преобразования курсора в xml - это настраивается (по крайней мере в SQL Server) мышкой за несколько минут
Раз это делается в SQL Server несложно, значит, это и написать несложно, значит, это уже написано. А т.к. этим пользуется больше человек, оно написано качественнее, даже если бы оно было закрытым.
код, который не работает
У тебя мания
То чть предлагает Microsoft для отладки TSQL нельзя назвать неудобной.
Отладка других языков там удобнее - вывод: я не мазохист и буду писать на том, что легче писать, отлаживать и сопровождать.
Пробовал тот же PHP пошагово выполнять?
Пробовал, и в Zend пробовал, и в VS.PHP - отличные редакторы, ничем не уступающие таковым для того же ASP.NET. И отладка есть, и интеллисенс и все, что нужно. Может, просто кое-кто ленится заглянуть в гугл и посмотреть, что давным-давно придумали умные люди для облегчения твоего же труда? Так это, извините, не проблема PHP, это твоя проблема.
Ага, и база становится от этого легче? И где, кстати, нужно столько ХП? И кто их пишет? И действительно ли все они нужны?
Sharp, не нужно себя дескредитировать.
В то время как весь мир пишет хранимые процедуры, господин Sharp продолжает утверждать что они утяжеляют базу.
Одно из основных преимуществ ХП - это увеличение скорости за счет особенностей того как SQL Server работает с хранимыми процедурами и динамическими SQL-запросами.
Вот тебе пример элементарной ХП (взята из стандартной схемы ASP .NET.
ALTER Procedure Stored_Procedure_Name
AS
BEGIN
 ECLARE @ApplicationName nvarchar(256)
 ECLARE @ApplicationId uniqueidentifier
SELECT @ApplicationId = ApplicationId FROM dbo.aspnet_Applications WHERE LOWER(@ApplicationName) = LoweredApplicationName
IF(@ApplicationId IS NULL)
BEGIN
 ECLARE @TranStarted bit
SET @TranStarted = 0
IF( @@TRANCOUNT = 0 )
BEGIN
BEGIN TRANSACTION
SET @TranStarted = 1
END
ELSE
SET @TranStarted = 0
SELECT @ApplicationId = ApplicationId
FROM dbo.aspnet_Applications WITH (UPDLOCK, HOLDLOCK)
WHERE LOWER(@ApplicationName) = LoweredApplicationName
IF(@ApplicationId IS NULL)
BEGIN
SELECT @ApplicationId = NEWID()
INSERT dbo.aspnet_Applications (ApplicationId, ApplicationName, LoweredApplicationName)
VALUES  @ApplicationId, @ApplicationName, LOWER(@ApplicationName))
END
IF( @TranStarted = 1 )
BEGIN
IF(@@ERROR = 0)
BEGIN
SET @TranStarted = 0
COMMIT TRANSACTION
END
ELSE
BEGIN
SET @TranStarted = 0
ROLLBACK TRANSACTION
END
END
END
END
Можешь на php написать аналогичный код? Как думаешь какой будет быстрее выполняться?
Ты думаешь, что за деньги продукт всегда качественный? ) Посмотри на Windows
Да что ты преципился к этому Windows? Код Windows и код SQL пишут разные команды, причем первая работает на 3, вторая на 5+.
А ты хочешь сказать, что добавляя код ХП к БД, ты ее тем самым облегчаешь? Ничего не удаляя взамен?
Да! Я ложу в базу данных хранимые процедуры, разумеется, теряю на жестком диске десятки килобайт для хранение кода хранимой процедуры и кеша планов выполнения, и получаю увеличение быстродействия, изоляцию логики, упрощение управлением полномочий и т.п.
Раз это делается в SQL Server несложно, значит, это и написать несложно, значит, это уже написано. А т.к. этим пользуется больше человек, оно написано качественнее, даже если бы оно было закрытым.
Походу знания моего ВУЗа тебе действительно пригодились бы...
Ты представляешь себе разницу реализации этой задачи средствами самого сервера базы данных и средствами какой-то якобы качественной (потому что ей пользуется больше человек, хотя я связи не вижу) наколенной поделки? Похоже очень смутно понимаешь о чем идет речь.
Отладка других языков там удобнее - вывод: я не мазохист и буду писать на том, что легче писать, отлаживать и сопровождать.
То есть по*й на скорость, главное чтоб было удобнее всего отлаживать?
TSQL - не очень дружелюбный язык, тем не менее его использование всегда оплачивается повышением скорости (разумеется, если TSQL пишет человек знающий его).
Вот тебе пример элементарной ХП (взята из стандартной схемы ASP .NET
Прошу прощения это не совсем та процедура - это немного измененная ее копия, вот код оригинальной процедуры:
ALTER PROCEDURE [dbo].aspnet_Applications_CreateApplication
@ApplicationName nvarchar(256),
@ApplicationId uniqueidentifier OUTPUT
AS
BEGIN
SELECT @ApplicationId = ApplicationId FROM dbo.aspnet_Applications WHERE LOWER(@ApplicationName) = LoweredApplicationName
IF(@ApplicationId IS NULL)
BEGIN
 ECLARE @TranStarted bit
SET @TranStarted = 0
IF( @@TRANCOUNT = 0 )
BEGIN
BEGIN TRANSACTION
SET @TranStarted = 1
END
ELSE
SET @TranStarted = 0
SELECT @ApplicationId = ApplicationId
FROM dbo.aspnet_Applications WITH (UPDLOCK, HOLDLOCK)
WHERE LOWER(@ApplicationName) = LoweredApplicationName
IF(@ApplicationId IS NULL)
BEGIN
SELECT @ApplicationId = NEWID()
INSERT dbo.aspnet_Applications (ApplicationId, ApplicationName, LoweredApplicationName)
VALUES  @ApplicationId, @ApplicationName, LOWER(@ApplicationName))
END
IF( @TranStarted = 1 )
BEGIN
IF(@@ERROR = 0)
BEGIN
SET @TranStarted = 0
COMMIT TRANSACTION
END
ELSE
BEGIN
SET @TranStarted = 0
ROLLBACK TRANSACTION
END
END
END
END