|
|
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Начал недавно изучать SQL по учебникам intuit.ru. У меня возник вопрос, не знаю, в правильном ли разделе его задаю... На фоне все более и более увеличивающейся абстагированности, изолированности средств разработки от компьютерного железа типы данных всё еще остаются очень сильно привязанными к архитектуре... Разве нельзя вместо типа Интегер ввести тип "Штуки" (мы ведь в физическом мире живем, предметы считаем), вместо типов с плавающей точкой - просто "Дробь", ведь есть же "Время" и "Дата"? Да и вообще, не проще ли для контроля типов ввести просто "Число с точкой" и "Число без точки". Пусть СУБД сама решает, где там у меня предел и максимальное значение, а не забивает мне голову планированием сколько байт у меня на что расходуется... Думаю, это было бы востребовано, ведь непрофессиональных программистов становится всё больше, это общемировая тенденция, так что уберите ноги, и не пинайте сильно. Жду ваших мнений... Интересно, что думают по этому поводу профи... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 14:19 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
iwe Думаю, это было бы востребовано, ведь непрофессиональных программистов становится всё больше, это общемировая тенденция, так что уберите ноги, и не пинайте сильно. Вот это-то и пугает... Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 14:33 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
iwe Пусть СУБД сама решает, где там у меня предел и максимальное значение, а не забивает мне голову планированием сколько байт у меня на что расходуется... Ну, собственно, многие так и делают. Ты говоришь им DECIMAL, а они уже решают как его хранить. Ты говоришь DATE, и чтобы понять что же именно у тебя на выходе, приходится долго рыться в доках. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 14:43 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
protector Вот это-то и пугает... Я ждал в числе развернутых ответов и такой... %-)))) Оголтелый профи? %-))) Что страшного в том, что в космос начнут летать не только проф. космонавты, но и пассажиры? Что страшного, что есть не только водители-профессионалы (сиречь дальнобойщики), но и просто "ездюк" на копейках, которые картошку с дачи возят. Деньги массовых потребителей и непрофессиональных энтузиастов тоже двигают производителей вперед, и нужно еще посмотреть, кто сделал больший вклад в прогресс - профи или потребители... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 14:53 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Ну, собственно, многие так и делают. Ты говоришь им DECIMAL, а они уже решают как его хранить. Ты говоришь DATE, и чтобы понять что же именно у тебя на выходе, приходится долго рыться в доках. Posted via ActualForum NNTP Server 1.4 В общем-то, мой вопрос можно переформулировать - почему нужно проектировать БД в терминах "плавающий тип", "двойная точность", "целочисленное"... Ведь маска возможного значения - нагляднее... Непрофессиональному разработчику, ИМХО, нагляднее и надежнее проектируя указать, что номер накладной у меня бесконечно большой, из цифр, и без запятых, а вес яблок - никоглда не отрицателен, но с запятой, и тремя знаками... А уж допустимость операций с данными пусть проверяются в соответствии с этой маской самой СУБД! Ну, это все отбросив снобизм, конечно.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 15:01 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
iweПусть СУБД сама решает, где там у меня предел и максимальное значение, а не забивает мне голову планированием сколько байт у меня на что расходуется... А еще лучше пусть она сама за меня думает, что мне надо. В идеальном случае - по жизни 8))) и кофе тоже пусть варит сама. 8) iwe это общемировая тенденция Вспомнилось выражение из одного перевода: "Ты не сможешь остановить глобальный мировой интергационный процесс - это антинаучно" Ну а по делу, все уже придумано и реализованно... ну или почти все. В свое время тихо офигивал, читая про разработки 50х - 70х годов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 15:02 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
dm82Ну а по делу, все уже придумано и реализованно... ну или почти все. В свое время тихо офигивал, читая про разработки 50х - 70х годов. Гы-ы-ы-ы... Ну вот, и раз всё уже было придумано и реализовано, то если подумать, все новые версии софта создаются в угоду непрофессионалам... Нафига мне новый ПейджМэйкер, если я знаю, и уже не раз делал газету в Ворде 97, да и скорее всего смогу в ХТМЛе нарисовать и на пленки вывести... Ну а раз мы до этого договорились, то нужно всё-таки ждать типа данных "пары обуви", "штуки", "кг"... если уже сейчас есть Дата и Время; а то можно было без проблем время в секундах считать, как комп и считает, причем хоть от рождения Магомета, хоть от Иисусечега, а хоть от 1970 года... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 15:22 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
iweРазве нельзя вместо типа Интегер ввести тип "Штуки" (мы ведь в физическом мире живем, предметы считаем), вместо типов с плавающей точкой - просто "Дробь", ведь есть же "Время" и "Дата"? Да и вообще, не проще ли для контроля типов ввести просто "Число с точкой" и "Число без точки". ... Интересно, что думают по этому поводу профи... Я не профи, но все равно выскажусь. 1 Откажитесь от встроенных типов данных. 2 Предоставьте пользователю возможность и средства для описания собственных (абстрактных) типов данных. Оператор typedef в СУБД. 3 Работайте с созданными пользователем типами данных. Это один путь. По второму пути идут разработчики различных интерфейсов доступа к БД. Они ничего не меняют в существующих СУБД, но позволяют пользователям создавать собственые типы данных (средствами своих интерфейсов). А для каждой конкретной СУБД пишется свой провайдер (драйвер), которой преобразует пользовательские типы данных в типы данных СУБД (как в одном направленни - от клиента к СУБД, так и в обратном). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 18:17 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
2: iwe Для начала НЕОБХОДИМО уяснить отличия между СУБД и БД. А апосля этого, подобные вопросы отвалятся сами собой... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 19:51 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
nik_x2: iwe Для начала НЕОБХОДИМО уяснить отличия между СУБД и БД. А апосля этого, подобные вопросы отвалятся сами собой... а поконкретней? (просто чем так отвечать - лучше ничего не отвечать. какой-то намёк на свою посвященность. хотя вопрос на мой взгляд довольно поверхностный) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 23:55 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
А не усложнит ли это в итоге разработку? Мне пожалуй будет проще самому определить что и как у меня хранится(на уровне нынешних СУБД), чем гадать что оно там запихнуло и как его оттуда достать? Т.е. очень простое приложение возможно и будет проще написать, а что посложнее потребует наоборот больших трудозатрат. К тому же если не будет очень стройной концепции этой приблуды, то она будет источником лишних глюков и тормозов. Мало сделать абстрактную надстройку для увеличения надежности, нужно еще и сделать ее настолько хорошо, чтобы не пришлось потом долго и упорно ковыряться в поисках плавающих глюков. В случае закрытого кода это может нафиг убить эту разработку(хотя может и в случае открытого) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 00:11 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
iwe protector Вот это-то и пугает... Что страшного в том, что в космос начнут летать не только проф. космонавты, но и пассажиры? Что страшного, что есть не только водители-профессионалы (сиречь дальнобойщики) Ну и пусть ездят. Но вы предлагаете чтобы космические корабли и грузовики конструировали потребители. А это уже страшновато. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 14:40 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
iweНачал недавно изучать SQL по учебникам intuit.ru. У меня возник вопрос, не знаю, в правильном ли разделе его задаю... На фоне все более и более увеличивающейся абстагированности, изолированности средств разработки от компьютерного железа типы данных всё еще остаются очень сильно привязанными к архитектуре... Разве нельзя вместо типа Интегер ввести тип "Штуки" (мы ведь в физическом мире живем, предметы считаем), вместо типов с плавающей точкой - просто "Дробь", ведь есть же "Время" и "Дата"? Да и вообще, не проще ли для контроля типов ввести просто "Число с точкой" и "Число без точки". Пусть СУБД сама решает, где там у меня предел и максимальное значение, а не забивает мне голову планированием сколько байт у меня на что расходуется... Думаю, это было бы востребовано, ведь непрофессиональных программистов становится всё больше, это общемировая тенденция, так что уберите ноги, и не пинайте сильно. Жду ваших мнений... Интересно, что думают по этому поводу профи... Вам надо было с забвенным чалом это обсуждать. Ярым сторонником баз данных без программистов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 15:32 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
iweРазве нельзя вместо типа Интегер ввести тип "Штуки" (мы ведь в физическом мире живем, предметы считаем), вместо типов с плавающей точкой - просто "Дробь", ведь есть же "Время" и "Дата"? Можно. На этапе проектирования и создания базы заведите эти типы сами, CREATE DOMAIN еще никто не отменял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2007, 13:17 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
iweНачал недавно изучать SQL по учебникам intuit.ru. У меня возник вопрос, не знаю, в правильном ли разделе его задаю... На фоне все более и более увеличивающейся абстагированности, изолированности средств разработки от компьютерного железа типы данных всё еще остаются очень сильно привязанными к архитектуре... Разве нельзя вместо типа Интегер ввести тип "Штуки" (мы ведь в физическом мире живем, предметы считаем), вместо типов с плавающей точкой - просто "Дробь", ведь есть же "Время" и "Дата"? Да и вообще, не проще ли для контроля типов ввести просто "Число с точкой" и "Число без точки". Пусть СУБД сама решает, где там у меня предел и максимальное значение, а не забивает мне голову планированием сколько байт у меня на что расходуется... Думаю, это было бы востребовано, ведь непрофессиональных программистов становится всё больше, это общемировая тенденция, так что уберите ноги, и не пинайте сильно. Жду ваших мнений... Интересно, что думают по этому поводу профи... Под СУБД Вы Access подразумеваете? Код: plaintext 1. 2. 3. 4. 5. А для "штук", как справедливо заметил "Владимир П." есть домены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2007, 16:55 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Plisteronесть домены. В Oracle ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2007, 17:05 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
В Oracle доменов конечно нет, но в мире существует не только Oracle. Если автор дискуссии никак жить не может без того, чтобы iweввести тип "Штуки" (мы ведь в физическом мире живем, предметы считаем) , то Oracle ему рекомендовать нельзя. Пусть выбирает FireBird, PostgreSQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2007, 08:23 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Просто товарищч Plisteron дебютировав на форуме УЖЕ успел сказать много разной ФИГНИ. прошу рассматривать это не как переход на личности, а как предостережение тем кто читает его посты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2007, 08:58 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
iwe Dimitry Sibiryakov Ну, собственно, многие так и делают. Ты говоришь им DECIMAL, а они уже решают как его хранить. Ты говоришь DATE, и чтобы понять что же именно у тебя на выходе, приходится долго рыться в доках. Posted via ActualForum NNTP Server 1.4 В общем-то, мой вопрос можно переформулировать - почему нужно проектировать БД в терминах "плавающий тип", "двойная точность", "целочисленное"... Ведь маска возможного значения - нагляднее... Непрофессиональному разработчику, ИМХО, нагляднее и надежнее проектируя указать, что номер накладной у меня бесконечно большой, из цифр, и без запятых, а вес яблок - никоглда не отрицателен, но с запятой, и тремя знаками... А уж допустимость операций с данными пусть проверяются в соответствии с этой маской самой СУБД! Ну, это все отбросив снобизм, конечно.... Отбросили мы снобизм, теперь читаем код и медленно ох... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2007, 21:27 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
iweРазве нельзя вместо типа Интегер ввести тип "Штуки" Можно. Во всех СУБД, кроме совсем уж игрушечных, есть возможность определения собственных типов данных. Определяйте "штуки" и работайте. Но учтите, что всего на 1 миллион записей (а это не много), "штуки" займут: small - 16 миллионов байт. integer - 32 миллиона байт bigint - 64 миллиона. Плюс такие же веса в индексах. В конце концов, в Oracle вы можете просто сказать "numeric". (мы ведь в физическом мире живем, предметы считаем), вместо типов с плавающей точкой - просто "Дробь", ведь есть же "Время" и "Дата" А такое есть. Decimal И есть не для "естественности восприятия", а для правильного (и точного) хранения чисел фиксированной разрядности. Да и вообще, не проще ли для контроля типов ввести просто "Число с точкой" и "Число без точки". Пусть СУБД сама решает, где там у меня предел и максимальное значение, а не забивает мне голову планированием сколько байт у меня на что расходуется... Думаю, это было бы востребовано, ведь непрофессиональных программистов становится всё больше, это общемировая тенденция, так что уберите ноги, и не пинайте сильно. Жду ваших мнений... Интересно, что думают по этому поводу профи... Это всё хорошо, но попробуйте профильтровать сие через среднепаршивые промышленные объемы данных. Как в части скорости работы, так и в части пространства для хранения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2007, 10:05 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
RomanSavelyevНо учтите, что всего на 1 миллион записей (а это не много), "штуки" займут: small - 16 миллионов байт. integer - 32 миллиона байт bigint - 64 миллиона. ... Это в какой СУБД small занимает 16 байт ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2007, 12:30 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
ChA RomanSavelyevНо учтите, что всего на 1 миллион записей (а это не много), "штуки" займут: small - 16 миллионов байт. integer - 32 миллиона байт bigint - 64 миллиона. ... Это в какой СУБД small занимает 16 байт ? Ну че придираешься, опечатался он - думал ьиты - написал байты. А вообще автор говорит здравые мысли, пора появляться универсальным типам данных не привязанным ни к каким платформам. В этом направлении и Microsoft работает уже давно .NET делая. А кроме этого еще масса других попыток. Все правильно, универсальный элементарные типы - это будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2007, 12:54 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Это в какой СУБД small занимает 16 байт ? Бит, конечно же. Но! Типы данных давно стандартизованы. И элементарные типы покрывают 99% потребности. Там, где действительно нужны комплексные типы (GIS и т.п.) - они есть. Но мы и так приходим к тому, что дизайнер БД не задумывается о типах данных и подводит нас к покупке нового массива данных. По моему, дизайнер БД всё-таки должен представлять, каков принцип хранения типа, да каким боком сие чревато. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2007, 16:50 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
ZoomProпривязанным ни к каким платформам. В этом направлении и Microsoft работает уже давно .NET делая. И каков итог ? Пообещали WinFS основанный на базе и втихаря подальше от позора его отрезали от Висtы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2007, 22:13 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
RomanSavelyev Да и вообще, не проще ли для контроля типов ввести просто "Число с точкой" и "Число без точки". Пусть СУБД сама решает, где там у меня предел и максимальное значение, а не забивает мне голову планированием сколько байт у меня на что расходуется... Думаю, это было бы востребовано, ведь непрофессиональных программистов становится всё больше, это общемировая тенденция, так что уберите ноги, и не пинайте сильно. Жду ваших мнений... Интересно, что думают по этому поводу профи... Это всё хорошо, но попробуйте профильтровать сие через среднепаршивые промышленные объемы данных. Как в части скорости работы, так и в части пространства для хранения. Пару раз сталкивался с ситуацией, когда именно объём хранения являлся причиной отказа от СУБД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2007, 13:11 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Владимир П.В Oracle доменов конечно нет, но в мире существует не только Oracle. Если автор дискуссии никак жить не может без того, чтобы iweввести тип "Штуки" (мы ведь в физическом мире живем, предметы считаем) , то Oracle ему рекомендовать нельзя. Пусть выбирает FireBird, PostgreSQL. Оракл, вообще-то, заявляет себя как ОРСУБД. Т.е. свои "штуки" можно пробовать - объектный тип данных. Для ГИС у Оракла, напрмер, начиная с 9 предлагается ОРМД, т.е для этих задач Штуки от самого Оракла. Другое дело, что из этого получится. Разаработка своих штук не совсем не профессиональное занятие: ведь основным недостатком ООП в либых областях считается именно сложность. Достаточно взглянуть на библиотеки классов для С#,Jdeveloper (Oracle) и проч, и представить, что вы их сами налабали, и они плохо спроектированы. Поддерживать их, наверное, похуже будет, чем процедурные библиотеки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2007, 22:55 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
ZoomPro А вообще автор говорит здравые мысли, пора появляться универсальным типам данных не привязанным ни к каким платформам. В этом направлении и Microsoft работает уже давно .NET делая. А кроме этого еще масса других попыток. Все правильно, универсальный элементарные типы - это будет.IMHO, "платформонезависимые продукты от Microsoft" -- это что-то вроде разноцветных автомобилей Генри Форда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 14:42 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
DocAl ZoomPro А вообще автор говорит здравые мысли, пора появляться универсальным типам данных не привязанным ни к каким платформам. В этом направлении и Microsoft работает уже давно .NET делая. А кроме этого еще масса других попыток. Все правильно, универсальный элементарные типы - это будет.IMHO, "платформонезависимые продукты от Microsoft" -- это что-то вроде разноцветных автомобилей Генри Форда. я видел желтый форд ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 15:30 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Привет, Gluk! Ты пишешь: GlukGK> я видел желтый форд пираты (сцуки) контрафакт гонють... -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 15:44 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
RomanSavelyev iweРазве нельзя вместо типа Интегер ввести тип "Штуки" Можно. Во всех СУБД, кроме совсем уж игрушечных, есть возможность определения собственных типов данных. Определяйте "штуки" и работайте. Но учтите, что всего на 1 миллион записей (а это не много), "штуки" займут: small - 16 миллионов байт. integer - 32 миллиона байт bigint - 64 миллиона. Плюс такие же веса в индексах. Может чего не правильно настроил: В таблице 1000 колонок типа Integer. 1 000 000 записей, и только в одной колонке каждой записи записал значение=1. SQL Server 2005 - 17.2 Gb Cache 5.2 - 17 Mb И, если кто может, скажите какой результат в Oracle? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 17:05 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
да нет, примерно так и должно быть а что Вас удивляет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 17:50 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
БредSQL Server 2005 - 17.2 Gb Cache 5.2 - 17 Mb И, если кто может, скажите какой результат в Oracle? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 17:50 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
SergSuperда нет, примерно так и должно быть а что Вас удивляет? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 18:04 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
softwarer БредSQL Server 2005 - 17.2 Gb Cache 5.2 - 17 Mb И, если кто может, скажите какой результат в Oracle? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Спасибо, но, често скажу, не совсем понял. Для определенности: прописать значение 1 в последнюю колонку каждой записи (при этом в SQL Server и Cache ничего не изменится). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 18:06 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
БредСпасибо, но, често скажу, не совсем понял. Это я в том числе к тому, что вопрос довольно бессмысленный. БредДля определенности: прописать значение 1 в последнюю колонку каждой записи (при этом в SQL Server и Cache ничего не изменится). Добавится по 999 байт на строку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 18:21 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
softwarer БредСпасибо, но, често скажу, не совсем понял. Это я в том числе к тому, что вопрос довольно бессмысленный. БредДля определенности: прописать значение 1 в последнюю колонку каждой записи (при этом в SQL Server и Cache ничего не изменится). Добавится по 999 байт на строку. Большое спасибо. Пусть и бессмысленный, но результат: В таблице 1000 колонок типа Integer. 1 000 000 записей, и только в последней колонке каждой записи записали значение=1. SQL Server 2005 - 17.2 Gb Cache 5.2 - 17 Mb Oracle ??? - 1.11 Gb А разве любой из таких вот "отдельных результатов" нельзя назвать бессмысленным? Наверное нужно закрывать этот раздел на форуме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 19:01 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
БредА разве любой из таких вот "отдельных результатов" нельзя назвать бессмысленным? Можно. Однако, некоторые отдельные результаты остаются бессмысленными в любом реальном контексте. Допустим, я скажу Вам, что стрелка индикатора бензина в автомобиле X-123 весит полтора грамма, а в автомобиле Y-124 - два с половиной грамма. Сумеете ли Вы найти полезное применение этой информации? Или на основании этого сделаете вывод о бессмысленности сравнения автомобилей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 19:07 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
softwarer БредА разве любой из таких вот "отдельных результатов" нельзя назвать бессмысленным? Можно. Однако, некоторые отдельные результаты остаются бессмысленными в любом реальном контексте. Допустим, я скажу Вам, что стрелка индикатора бензина в автомобиле X-123 весит полтора грамма, а в автомобиле Y-124 - два с половиной грамма. Сумеете ли Вы найти полезное применение этой информации? Или на основании этого сделаете вывод о бессмысленности сравнения автомобилей? Я про стрелки в автомобиле, кажется, ничего не говорил, но говорил про базы данных, кажется. А именно про хранение "сильно разреженных таблиц", в которых иногда есть потребность. Но пусть это будет совершенно бессмысленным, в отличие от Ваших, всегда осмысленных, "сравнениях СУБД". Я не против. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 19:14 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Бред А именно про хранение "сильно разреженных таблиц", в которых иногда есть потребность. Но пусть это будет совершенно бессмысленным, в отличие от Ваших, всегда осмысленных, "сравнениях СУБД". Я не против. "сильно разреженные таблицы" бывают только от разрухи в головах если проектиовать с учетом какие данные будут храниться никакой сильноразреженности не будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 19:22 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
БредА именно про хранение "сильно разреженных таблиц", в которых иногда есть потребность. В хранении "сильно разреженных таблиц" потребности нет. Может быть потребность хранения сильно разреженных данных и есть те или иные приемы ее реализации в той или иной СУБД - скажем, перенос ненулевых колонок в начало, скажем, вертикальное партиционирование, а то и вовсе какой-нибудь EAV-like design. Соответственно, сравнивать результаты на жестко заданной архитектуре хранения - бессмысленно, если цель - именно сравнение. Можно сравнивать именно решения той или иной задачи - с учетом эффективности решения основной задачи, эффективности других, более редких, но ожидаемых операций и удобства собственно реализации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 19:22 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
softwarer... какая у нас аллергия на сильноразреженность ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 19:26 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
SergSuper Бред А именно про хранение "сильно разреженных таблиц", в которых иногда есть потребность. Но пусть это будет совершенно бессмысленным, в отличие от Ваших, всегда осмысленных, "сравнениях СУБД". Я не против. "сильно разреженные таблицы" бывают только от разрухи в головах если проектиовать с учетом какие данные будут храниться никакой сильноразреженности не будет Да понятно уже у кого разруха в голове. Спасибо. P.S. Типичная борьба с разреженностью в SQL БД: хранить данные в таблице: Строка Колонка Значение типа дата Значение типа число Значение типа строка Еще полезно создавать новые таблицы динамически. И никакой разрухи в голове. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 19:28 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
softwarer БредА именно про хранение "сильно разреженных таблиц", в которых иногда есть потребность. В хранении "сильно разреженных таблиц" потребности нет. Может быть потребность хранения сильно разреженных данных и есть те или иные приемы ее реализации в той или иной СУБД - скажем, перенос ненулевых колонок в начало, скажем, вертикальное партиционирование, а то и вовсе какой-нибудь EAV-like design. Соответственно, сравнивать результаты на жестко заданной архитектуре хранения - бессмысленно, если цель - именно сравнение. Можно сравнивать именно решения той или иной задачи - с учетом эффективности решения основной задачи, эффективности других, более редких, но ожидаемых операций и удобства собственно реализации. Спасибо. Поправили терминологию и предложили, как я понял, "вертикальное" партиционирование" в Oracle. Понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 19:32 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
БредСпасибо. Поправили терминологию Если Вы воспринимаете именно так - Ваше право. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 19:35 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Бред P.S. Типичная борьба с разреженностью в SQL БД: хранить данные в таблице: Строка Колонка Значение типа дата Значение типа число Значение типа строка Еще полезно создавать новые таблицы динамически. И никакой разрухи в голове. Как будто Cache хранит по другому (правда там 3-й и 4-й позиции нет, всё только строкой храниться) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 19:39 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
SergSuperпримерно так и должно бытьНе уверен, должно быть меньше, ориентировочно раза в 3-4: 4Б * 1000 полей * 1 000 000 записей ~ 4 000 000 000 ~ 4ГБ Так что похоже, эксперимент был проведен не очень чисто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 19:42 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
softwarer БредСпасибо. Поправили терминологию Если Вы воспринимаете именно так - Ваше право. Значит ли это, что "вертикальное партиционирование" в Oracle отпадает, и нужно реализовывать в Oracle "какой-нибудь EAV-like dasign" мне сложно понять. И это, надо думать, тоже мое право. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 19:43 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
ChA SergSuperпримерно так и должно бытьНе уверен, должно быть меньше, ориентировочно раза в 3-4: 4Б * 1000 полей * 1 000 000 записей ~ 4 000 000 000 ~ 4ГБ Так что похоже, эксперимент был проведен не очень чисто. Списибо. Я не смог обнаружить нечистоту, к сожалению, и обратился с вопросом к специалистам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 19:46 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
SergSuper Бред P.S. Типичная борьба с разреженностью в SQL БД: хранить данные в таблице: Строка Колонка Значение типа дата Значение типа число Значение типа строка Еще полезно создавать новые таблицы динамически. И никакой разрухи в голове. Как будто Cache хранит по другому (правда там 3-й и 4-й позиции нет, всё только строкой храниться) Там разные способы хранения, и не совсем понятно о чем Вы говорите. В любом случае там не нужно бороться с разреженностью - количество колонок в таблице не ограничено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 19:49 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
БредЯ не смог обнаружить нечистоту, к сожалению, и обратился с вопросом к специалистам.В данном случае лучше было писать "не" и "чистоту" раздельно, хотя фразу это все равно не спасает. Начнем с того, как Вы определили объем БД после выполнения всех операций ? В EM в свойствах БД посмотрели ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 19:49 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
БредЗначит ли это, что "вертикальное партиционирование" в Oracle отпадает, и нужно реализовывать в Oracle "какой-нибудь EAV-like dasign" мне сложно понять. Попробуйте спросить у Гугля, что эти слова значат - может, станет яснее. Правда, не ответит на вопрос "что же нужно реализовывать" - например, разреженные данные очень эффективно хранятся в analytic workspace-ах, но это не значит, что их надо использовать для каждой задачи. БредИ это, надо думать, тоже мое право. Безусловно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 19:50 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
ChA БредЯ не смог обнаружить нечистоту, к сожалению, и обратился с вопросом к специалистам.В данном случае лучше было писать "не" и "чистоту" раздельно, хотя фразу это все равно не спасает. Начнем с того, как Вы определили объем БД после выполнения всех операций ? В EM в свойствах БД посмотрели ? Закончите, пожалуйста, тем каков правильный результат, и дело с концом. Я же уже согласился с полной бессмысленностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 19:51 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
ChA БредЯ не смог обнаружить нечистоту, к сожалению, и обратился с вопросом к специалистам.В данном случае лучше было писать "не" и "чистоту" раздельно, Это было бы орфографической ошибкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 19:54 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
SergSuperкакая у нас аллергия на сильноразреженность Она в природе человеческой. Мы же не радуемся сильно разреженным товарам в магазинах и не отправляемся в отпуск с сильно разреженными вещами в чемоданах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 19:56 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
БредЗакончите, пожалуйста, тем каков правильный результат, и дело с концом. Я же уже согласился с полной бессмысленностью.Я не знаю, что Вы подразумеваете под правильным результатом. Грубый пример стандартного расчета объема таблицы уже был приведен. Все сильные отклонения от него могут быть результатом неизвестных мне факторов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 19:59 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
MasterZivЭто было бы орфографической ошибкой. Модератор: Давайте остановимся на этом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 20:01 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
БредТам разные способы хранения, и не совсем понятно о чем Вы говорите. В любом случае там не нужно бороться с разреженностью - количество колонок в таблице не ограничено. Способы может быть и разные, но все сводится к одному - есть некий ключ и аттрибут. Сделайте так же на SQL - и тоже не надо будет бороться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 20:03 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
softwarer SergSuperкакая у нас аллергия на сильноразреженность Она в природе человеческой. Мы же не радуемся сильно разреженным товарам в магазинах и не отправляемся в отпуск с сильно разреженными вещами в чемоданах Интересный пример с чемоданами. Сложно представить что-либо более разреженное. Я уж не говорю, что в любом магазине просто потрясающая разреженность товаров. Постоянно большинство нужных предметов нельзя купить в конкретном магазине... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 20:04 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
SergSuper БредТам разные способы хранения, и не совсем понятно о чем Вы говорите. В любом случае там не нужно бороться с разреженностью - количество колонок в таблице не ограничено. Способы может быть и разные, но все сводится к одному - есть некий ключ и аттрибут. Сделайте так же на SQL - и тоже не надо будет бороться Вы мне предлагаете сделать количество колонок в таблице не ограниченным, и не занимать место под несуществующие данные в SQL Server ??? Я этого сделать не могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 20:08 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
БредЯ уж не говорю, что в любом магазине просто потрясающая разреженность товаров. Постоянно большинство нужных предметов нельзя купить в конкретном магазине... "Потрясающая разреженность" здесь относится к "товарам в совокупности", к тому, что я назвал "данными", противопоставив их "таблицам". То, что Вы предпочли трактовать как поправку в терминологии. Магазины - как раз пример вертикального партиционирования как варианта хранения разреженных данных. Благодаря ему во-первых полки магазина плотно забиты, во-вторых, гвозди как правило можно купить рядом с молотками, а в-третьих, покупая хлеб, мы не рискуем обнаружить в нем завалившийся гвоздь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 20:10 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
ChA БредЗакончите, пожалуйста, тем каков правильный результат, и дело с концом. Я же уже согласился с полной бессмысленностью.Я не знаю, что Вы подразумеваете под правильным результатом. Грубый пример стандартного расчета объема таблицы уже был приведен. Все сильные отклонения от него могут быть результатом неизвестных мне факторов. Я могу только предположить, что в Вашем грубом примере есть серьезная ошибка. Но, предположим, что ошибка была у меня (куда-то не туда смотрел). Тогда: SQL Server 2005 - 4 Гб Cache 5.2 - 17 Мб Oracle ??? - 1.11 Гб ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 20:12 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
softwarer БредЯ уж не говорю, что в любом магазине просто потрясающая разреженность товаров. Постоянно большинство нужных предметов нельзя купить в конкретном магазине... "Потрясающая разреженность" здесь относится к "товарам в совокупности", к тому, что я назвал "данными", противопоставив их "таблицам". То, что Вы предпочли трактовать как поправку в терминологии. Магазины - как раз пример вертикального партиционирования как варианта хранения разреженных данных. Благодаря ему во-первых полки магазина плотно забиты, во-вторых, гвозди как правило можно купить рядом с молотками, а в-третьих, покупая хлеб, мы не рискуем обнаружить в нем завалившийся гвоздь. Лирика. Вы продолжаете настаивать на том, что данные могут быть разреженными (что это такое я понять не могу - не дано), а таблицы не могут. На этой оптимистической ноте позвольте закончить обсуждение изначально бессмысленного вопроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 20:17 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
MasterZivЭто было бы орфографической ошибкой.Уважаемый MasterZiv, рекомедую Вам ознакомиться со смыслом слова "нечистота", например, с помощью Google. P.S. Модератор, так лучше ? Модератор: Уважаемый ChA, рекомендую Вам ознакомиться с правилами хорошего тона ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 20:20 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
БредТам разные способы хранения, и не совсем понятно о чем Вы говорите. В любом случае там не нужно бороться с разреженностью - количество колонок в таблице не ограничено. Конечно не ограничено. Ведь там нет ни того, ни другого. Ограничение на размер "ключа" всё же есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 20:22 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
БредВы мне предлагаете сделать количество колонок в таблице не ограниченным, и не занимать место под несуществующие данные в SQL Server ??? Я этого сделать не могу. Я ничего не предлагаю, я просто объясняю что структура данных в Cache эквивалентна таблице с двумя полями. Снимаю шляпу перед маркетологами Cache, которые для этого сумели придумать красивое название "разряженные массивы" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 23:02 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
БредБольшое спасибо. Пусть и бессмысленный, но результат: В таблице 1000 колонок типа Integer. 1 000 000 записей, и только в последней колонке каждой записи записали значение=1. SQL Server 2005 - 17.2 Gb Cache 5.2 - 17 Mb Oracle ??? - 1.11 Gb А разве любой из таких вот "отдельных результатов" нельзя назвать бессмысленным? Наверное нужно закрывать этот раздел на форуме.Гм. Не знаю - зачем я это делал :), но вот результаты Firebird Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: plaintext 1. Заносим 1 в последнюю колонку : Код: plaintext Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2007, 01:37 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Гм, чего-то со скриптом я намутил - ночь наверное ;) Создавать таблицу можно и так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2007, 01:48 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Простите, а где ЧАЛ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2007, 02:01 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
БредМожет чего не правильно настроил: В таблице 1000 колонок типа Integer. 1 000 000 записей, и только в одной колонке каждой записи записал значение=1. SQL Server 2005 - 17.2 Gb Cache 5.2 - 17 Mb И, если кто может, скажите какой результат в Oracle? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. То есть 18 Mb. Это слегка завышенная цифра, так как место выделяется экстентами. Без увеличения размера в эту табличку можно добавить еще около ста тысяч записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2007, 09:18 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Бред говорил про базы данных, кажется. А именно про хранение "сильно разреженных таблиц", в которых иногда есть потребность. Но пусть это будет совершенно бессмысленным, в отличие от Ваших, всегда осмысленных, "сравнениях СУБД". Я не против. Sybase IQ именно так и хранит данные - по столбцам. Если стобец пустой, или там "сильноразряженный", то он практически ничего на диске не занимает, независимо от числа строк в таблице. Более того - если в таблице миллион строк километровой длины, но в строках хранится всего десять - сто - тысяча уникальных значений, то эти значения будут закодированы и храниться будут толко пара байт (и образцы строк). Такая вот звездообразная схема реализована "унутре думателя". При всем этом IQ является вполне себе реляционной СУБД (а не кашей какой-то), и даже Transact SQL понимает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 01:08 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andrey БредМожет чего не правильно настроил: В таблице 1000 колонок типа Integer. 1 000 000 записей, и только в одной колонке каждой записи записал значение=1. SQL Server 2005 - 17.2 Gb Cache 5.2 - 17 Mb И, если кто может, скажите какой результат в Oracle? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. То есть 18 Mb. Это слегка завышенная цифра, так как место выделяется экстентами. Без увеличения размера в эту табличку можно добавить еще около ста тысяч записей. А где тут 1000 колонок типа int ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 01:11 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Выбегалло Bogdanov Andrey БредМожет чего не правильно настроил: В таблице 1000 колонок типа Integer. 1 000 000 записей, и только в одной колонке каждой записи записал значение=1. SQL Server 2005 - 17.2 Gb Cache 5.2 - 17 Mb И, если кто может, скажите какой результат в Oracle? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. То есть 18 Mb. Это слегка завышенная цифра, так как место выделяется экстентами. Без увеличения размера в эту табличку можно добавить еще около ста тысяч записей. А где тут 1000 колонок типа int ? А, пардон, сразу не просек. Ну да, ну да - это та самая схема хранения, в которой элементарный запрос надо полдня продумывать, а потом сервер полдня джойны хреначит. Знакомая штука. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 01:15 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Выбегалло А где тут 1000 колонок типа int ? А где у Cashe 1000 колонок? Там вообще нет ни одной колонки. Выбегалло А, пардон, сразу не просек. Ну да, ну да - это та самая схема хранения, в которой элементарный запрос надо полдня продумывать, а потом сервер полдня джойны хреначит. Знакомая штука. Время продумывания и время выполнения зависит в основном от умственных способностей продумывающего, а не от сервера и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 09:03 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
pavelvp БредТам разные способы хранения, и не совсем понятно о чем Вы говорите. В любом случае там не нужно бороться с разреженностью - количество колонок в таблице не ограничено. Конечно не ограничено. Ведь там нет ни того, ни другого. Ограничение на размер "ключа" всё же есть. Где "там"? Я не так давно познакомился с Cache, но успел увидеть три СУБД. И во всех были таблицы и колонки. Может это у Вас ревность? Потому что "там" много чего есть. Лучше опубликуйте результат бессмысленного теста для Линтер, и сравните его, конечно же, с SQL Server. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 10:42 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
SergSuper БредВы мне предлагаете сделать количество колонок в таблице не ограниченным, и не занимать место под несуществующие данные в SQL Server ??? Я этого сделать не могу. Я ничего не предлагаю, я просто объясняю что структура данных в Cache эквивалентна таблице с двумя полями. Снимаю шляпу перед маркетологами Cache, которые для этого сумели придумать красивое название "разряженные массивы" Не правильно объясняете - не знаю - от незнания или умышленно? Структура данных в Cache эквивалентна, помимо прочего, таблице с неограниченным числом полей. А маркетинг у Cache просто нулевой. И у меня создается ощущение, что это совсем не беспокоит Intersystems. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 10:45 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
hvlad БредБольшое спасибо. Пусть и бессмысленный, но результат: В таблице 1000 колонок типа Integer. 1 000 000 записей, и только в последней колонке каждой записи записали значение=1. SQL Server 2005 - 17.2 Gb Cache 5.2 - 17 Mb Oracle ??? - 1.11 Gb А разве любой из таких вот "отдельных результатов" нельзя назвать бессмысленным? Наверное нужно закрывать этот раздел на форуме.Гм. Не знаю - зачем я это делал :), но вот результаты Firebird Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: plaintext 1. Заносим 1 в последнюю колонку : Код: plaintext Код: plaintext 1. Здорово! Если эта штука реляционная, то по этому тесту она оказалась лидером среди РСУБД. Правда в Oracle считают (после интеграции экспресса, "древовидных даблиц" и др. фишек), что Oracle уже не реляционная. Не удивительно, что у нее результат бессмысленного теста получше, чем у SQL Server. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 10:51 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andrey БредМожет чего не правильно настроил: В таблице 1000 колонок типа Integer. 1 000 000 записей, и только в одной колонке каждой записи записал значение=1. SQL Server 2005 - 17.2 Gb Cache 5.2 - 17 Mb И, если кто может, скажите какой результат в Oracle? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. То есть 18 Mb. Это слегка завышенная цифра, так как место выделяется экстентами. Без увеличения размера в эту табличку можно добавить еще около ста тысяч записей. Вам не кажется, что Вы изобрели какой-то другой тест? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 10:59 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Выбегалло Бред говорил про базы данных, кажется. А именно про хранение "сильно разреженных таблиц", в которых иногда есть потребность. Но пусть это будет совершенно бессмысленным, в отличие от Ваших, всегда осмысленных, "сравнениях СУБД". Я не против. Sybase IQ именно так и хранит данные - по столбцам. Если стобец пустой, или там "сильноразряженный", то он практически ничего на диске не занимает, независимо от числа строк в таблице. Более того - если в таблице миллион строк километровой длины, но в строках хранится всего десять - сто - тысяча уникальных значений, то эти значения будут закодированы и храниться будут толко пара байт (и образцы строк). Такая вот звездообразная схема реализована "унутре думателя". При всем этом IQ является вполне себе реляционной СУБД (а не кашей какой-то), и даже Transact SQL понимает. Жаль что нет конкретного результата, но объяснение впечатляет. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 11:01 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Выбегалло Выбегалло Bogdanov Andrey БредМожет чего не правильно настроил: В таблице 1000 колонок типа Integer. 1 000 000 записей, и только в одной колонке каждой записи записал значение=1. SQL Server 2005 - 17.2 Gb Cache 5.2 - 17 Mb И, если кто может, скажите какой результат в Oracle? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. То есть 18 Mb. Это слегка завышенная цифра, так как место выделяется экстентами. Без увеличения размера в эту табличку можно добавить еще около ста тысяч записей. А где тут 1000 колонок типа int ? А, пардон, сразу не просек. Ну да, ну да - это та самая схема хранения, в которой элементарный запрос надо полдня продумывать, а потом сервер полдня джойны хреначит. Знакомая штука. Да, кажется об этой реляционной "фишке-подмене" я говорил в одном из сообщений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 11:04 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andrey Выбегалло А где тут 1000 колонок типа int ? А где у Cashe 1000 колонок? Там вообще нет ни одной колонки. Это еще одна форма сообщения о бессмысленности. Точнее даже намек на наглую ложь. Типа 17 Мб с неба свалились. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 11:07 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Бред Bogdanov Andrey То есть 18 Mb. Это слегка завышенная цифра, так как место выделяется экстентами. Без увеличения размера в эту табличку можно добавить еще около ста тысяч записей. Вам не кажется, что Вы изобрели какой-то другой тест? Почему другой? Что в нем не так? Какую функциональность, подразумевавшуюся вашим тестом это тест не покрывает? Кстати, свой тест на Cache вы вообще не показали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 11:27 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Бред SergSuper БредВы мне предлагаете сделать количество колонок в таблице не ограниченным, и не занимать место под несуществующие данные в SQL Server ??? Я этого сделать не могу. Я ничего не предлагаю, я просто объясняю что структура данных в Cache эквивалентна таблице с двумя полями. Снимаю шляпу перед маркетологами Cache, которые для этого сумели придумать красивое название "разряженные массивы" Не правильно объясняете - не знаю - от незнания или умышленно? Структура данных в Cache эквивалентна, помимо прочего, таблице с неограниченным числом полей. А маркетинг у Cache просто нулевой. И у меня создается ощущение, что это совсем не беспокоит Intersystems. Да Вы ж не первый кто с этим пытался спорить. Опишите любую структуру, которую Вы храните на Cache, я её засуну в таблицу из двух полей. БредЗдорово! Если эта штука реляционная, то по этому тесту она оказалась лидером среди РСУБД. Правда в Oracle считают (после интеграции экспресса, "древовидных даблиц" и др. фишек), что Oracle уже не реляционная. Не удивительно, что у нее результат бессмысленного теста получше, чем у SQL Server. Простите, а у Вас критерий лидерства - объём занимаемой базой на диске? И еще - если Вы кидаетесь такими словами как "наглая ложь" - потрудитесь это как-то обосновывать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 11:34 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andrey Бред Bogdanov Andrey То есть 18 Mb. Это слегка завышенная цифра, так как место выделяется экстентами. Без увеличения размера в эту табличку можно добавить еще около ста тысяч записей. Вам не кажется, что Вы изобрели какой-то другой тест? Почему другой? Что в нем не так? Какую функциональность, подразумевавшуюся вашим тестом это тест не покрывает? Кстати, свой тест на Cache вы вообще не показали. Потому что другой. Как еще объяснить? Я про таблицу из трех колонок уже говорил. И про запросы Вам уже говорили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 11:43 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
скажу один вещь. пусть летают в космос пассажиры пусть программы пишут все пользователи-непрофессионалы а непрофессионалалы хирурги непрофессионально режут топикстартера..имхо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 11:48 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
SergSuper Бред SergSuper БредВы мне предлагаете сделать количество колонок в таблице не ограниченным, и не занимать место под несуществующие данные в SQL Server ??? Я этого сделать не могу. Я ничего не предлагаю, я просто объясняю что структура данных в Cache эквивалентна таблице с двумя полями. Снимаю шляпу перед маркетологами Cache, которые для этого сумели придумать красивое название "разряженные массивы" Не правильно объясняете - не знаю - от незнания или умышленно? Структура данных в Cache эквивалентна, помимо прочего, таблице с неограниченным числом полей. А маркетинг у Cache просто нулевой. И у меня создается ощущение, что это совсем не беспокоит Intersystems. Да Вы ж не первый кто с этим пытался спорить. Опишите любую структуру, которую Вы храните на Cache, я её засуну в таблицу из двух полей. БредЗдорово! Если эта штука реляционная, то по этому тесту она оказалась лидером среди РСУБД. Правда в Oracle считают (после интеграции экспресса, "древовидных даблиц" и др. фишек), что Oracle уже не реляционная. Не удивительно, что у нее результат бессмысленного теста получше, чем у SQL Server. Простите, а у Вас критерий лидерства - объём занимаемой базой на диске? И еще - если Вы кидаетесь такими словами как "наглая ложь" - потрудитесь это как-то обосновывать Не знаю с кем Вы там спорили. У каждой из этих тысяч колонок свой тип, свой смысл, свои ограничения целостности. Хватит уже трепаться, а? Bogdanov Andrey уже все что можно засунул. Вот с ним и соревнуйтесь. Позвольте мне не обосновывать, что я не нагло вру. Если Вам удобно так считать - считайте на здоровье. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 11:50 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
nig_AMскажу один вещь. пусть летают в космос пассажиры пусть программы пишут все пользователи-непрофессионалы а непрофессионалалы хирурги непрофессионально режут топикстартера..имхо Уточню. "Весь цивилизованный мир" (и я в том числе) работает на SQL Server. Кто-то не профессионально (17.2Гб), кто-то профессионально (4 Гб), кто-то профессионально пудрит сам себе мозги (18 Мб). Но хочется иногда понять где ты находишься вместе со всем цивилизованным миром. И выясняется, что лучше бы не понимать. Потому что находишься ты в нехорошем месте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 11:59 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
SergSuper БредЗдорово! Если эта штука реляционная, то по этому тесту она оказалась лидером среди РСУБД. Правда в Oracle считают (после интеграции экспресса, "древовидных даблиц" и др. фишек), что Oracle уже не реляционная. Не удивительно, что у нее результат бессмысленного теста получше, чем у SQL Server. Простите, а у Вас критерий лидерства - объём занимаемой базой на диске? ПО ЭТОМУ ТЕСТУ . Какой еще должен быть критерий ПО ЭТОМУ ТЕСТУ ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 12:04 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
БредУточню. "Весь цивилизованный мир" (и я в том числе) работает на SQL Server. Какое счастье, что до сих пор остаются не тронутые цивилизацией уголки :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 12:11 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
БредПозвольте мне не обосновывать, что я не нагло вру. Если Вам удобно так считать - считайте на здоровье. Уважаемый, Вы других обвиняете во лжи без всяких обоснований. Я считаю это оскорблением и как модератор буду такие посты тереть. Считайте это официальным предупреждением ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 12:19 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
softwarer БредУточню. "Весь цивилизованный мир" (и я в том числе) работает на SQL Server. Какое счастье, что до сих пор остаются не тронутые цивилизацией уголки :) Не могу не согласиться. К Oracle меня тянет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 12:38 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
SergSuper БредПозвольте мне не обосновывать, что я не нагло вру. Если Вам удобно так считать - считайте на здоровье. Уважаемый, Вы других обвиняете во лжи без всяких обоснований. Я считаю это оскорблением и как модератор буду такие посты тереть. Считайте это официальным предупреждением Уважаемый, я всего лишь сказал, что меня обвиняют в наглой лжи. А Вы все нагло переврали, нагло пользуясь возможностью тереть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 12:40 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Бред Не могу не согласиться. К Oracle меня тянет... но потянет ли оракл такой Бред ... :) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 12:41 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Yo.! Бред Не могу не согласиться. К Oracle меня тянет... но потянет ли оракл такой Бред ... :) ? Похоже Ваш вариант теста показал совсем уж не удовлетворительный результат. Пора, пора друзья переходить на личности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 12:55 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Бред Bogdanov Andrey Выбегалло А где тут 1000 колонок типа int ? А где у Cashe 1000 колонок? Там вообще нет ни одной колонки. Это еще одна форма сообщения о бессмысленности. Точнее даже намек на наглую ложь. Типа 17 Мб с неба свалились. Из последующей перепалки с модератором я понял, что Бред воспринял мою фразу как обвинение во лжи. Хочу уверить, что я и не пытался поставить под сомнение результаты "Бредовского" теста. Особенно учитывая, что достиг точно таких же результатов. Я просто считаю, что в Cache вообще нет колонок в моем понимании. Правда если быть уж совсем точным, то термин "колонка", как мне кажется, вообще отсутствуетв теории баз данных. Как реляционных, так и "постреляционных" (а кстати, где можно прочитать про теорию постреляционных баз данных?) Может быть я ошибаюсь и такой термин есть? Если да, то сообщите мне его определение, объясните что в Cache подходит под это определение. И тогда я смогу показать где в моем тесте 1000 колонок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 13:02 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andrey Бред Bogdanov Andrey Выбегалло А где тут 1000 колонок типа int ? А где у Cashe 1000 колонок? Там вообще нет ни одной колонки. Это еще одна форма сообщения о бессмысленности. Точнее даже намек на наглую ложь. Типа 17 Мб с неба свалились. Из последующей перепалки с модератором я понял, что Бред воспринял мою фразу как обвинение во лжи. Хочу уверить, что я и не пытался поставить под сомнение результаты "Бредовского" теста. Особенно учитывая, что достиг точно таких же результатов. Я просто считаю, что в Cache вообще нет колонок в моем понимании. Правда если быть уж совсем точным, то термин "колонка", как мне кажется, вообще отсутствуетв теории баз данных. Как реляционных, так и "постреляционных" (а кстати, где можно прочитать про теорию постреляционных баз данных?) Может быть я ошибаюсь и такой термин есть? Если да, то сообщите мне его определение, объясните что в Cache подходит под это определение. И тогда я смогу показать где в моем тесте 1000 колонок. Спасибо, я удовлетворен Вашим объяснением. Я уже сказал, отвечая pavelvp, что видел бегло пока три СУБД в Cache. И во всех есть таблицы и колонки (просто называется это другими словами, так же как есть отношения и атрибуты в реляционной теории). Пусть поправят лучше знающие, если в чем-то ошибусь. Родная Cache Objects имеет в базовом способе хранения ограничение на число колонок в таблице, просто из-за ограничения на длину записи 32К. Говорится, что можно как угодно переопределять способ хранения данных, но как при этом обеспечивется концептуальная целостность (запросы и т.д.) понятия не имею. Больше мне понравились модели данных и их хранение (не "переопределяемое") в q.Word и X.Magic. В частности, как раз в последней нет ограничений на число колонок в таблице. И именно такую схему я и использовал в тесте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 15:03 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
БредГде "там"? Я не так давно познакомился с Cache, но успел увидеть три СУБД. И во всех были таблицы и колонки. Может это у Вас ревность? Потому что "там" много чего есть. :-))) "Ты суслика видишь? Нет. И я не вижу. А он есть!" :-) Лучше опубликуйте результат бессмысленного теста для Линтер, и сравните его, конечно же, с SQL Server. Если Вы напряжёте свою память, Андрей Леонидович, то наверняка вспомните, что похожие сравнения я уже проводил и публиковал здесь года два назад для ЛИНТЕР, MSSQL и Cache. Это в том же топике о котором SergSuper чуть выше упоминал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 16:21 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
pavelvp Если Вы напряжёте свою память, Андрей Леонидович, то наверняка вспомните... ЧАЛ из Латвии писал, а этот IP московский Да и стилистика немного другая. Я всё-таки склоняюсь что не он ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 16:35 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
pavelvp БредГде "там"? Я не так давно познакомился с Cache, но успел увидеть три СУБД. И во всех были таблицы и колонки. Может это у Вас ревность? Потому что "там" много чего есть. :-))) "Ты суслика видишь? Нет. И я не вижу. А он есть!" :-) Лучше опубликуйте результат бессмысленного теста для Линтер, и сравните его, конечно же, с SQL Server. Если Вы напряжёте свою память, Андрей Леонидович, то наверняка вспомните, что похожие сравнения я уже проводил и публиковал здесь года два назад для ЛИНТЕР, MSSQL и Cache. Это в том же топике о котором SergSuper чуть выше упоминал. Опа! Даже не знаю радоваться или говорить "сам ты Андрей Леонидович". Топик посмотрел. Там этого нет. Слишком много неправды у Вас в одном сообщении. Суслик - это этот Андрей Леонидович что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 16:36 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
SergSuper pavelvp Если Вы напряжёте свою память, Андрей Леонидович, то наверняка вспомните... ЧАЛ из Латвии писал, а этот IP московский Да и стилистика немного другая. Я всё-таки склоняюсь что не он Нашли хорошую подтему для "разреженных таблиц". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 16:37 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Привет, SergSuper! Ты пишешь: SergSuperS> ЧАЛ из Латвии писалошибаешься. -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 16:43 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий Привет, SergSuper! Ты пишешь: SergSuperS> ЧАЛ из Латвии писалошибаешься. -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.4 Эта подтема более конструктивна. Разберитесь в ней поглубже, господа! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 16:47 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Бред Спасибо, я удовлетворен Вашим объяснением. Я уже сказал, отвечая pavelvp, что видел бегло пока три СУБД в Cache. И во всех есть таблицы и колонки (просто называется это другими словами, так же как есть отношения и атрибуты в реляционной теории). Пусть поправят лучше знающие, если в чем-то ошибусь. Родная Cache Objects имеет в базовом способе хранения ограничение на число колонок в таблице, просто из-за ограничения на длину записи 32К. Говорится, что можно как угодно переопределять способ хранения данных, но как при этом обеспечивется концептуальная целостность (запросы и т.д.) понятия не имею. Больше мне понравились модели данных и их хранение (не "переопределяемое") в q.Word и X.Magic. В частности, как раз в последней нет ограничений на число колонок в таблице. И именно такую схему я и использовал в тесте. Я не хочу ругать Cache или или хвалить Oracle. Своим постом я хотел показать, что простое сравнение объема занимаемого данными - задача бессмысленная в отрыве от решаемой задачи и от конкретной прикладной постановки. Да, способы организации информации в разных СУБД - разные. Но при любом способе хранения можно добиться минимизации объема. И кстати, предлагаемый мною вариант очень часто используется (к сожалению и где надо и где не надо - честно скажу, что чаще, где не надо). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 17:00 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Очень подходящий ник :)Эта подтема более конструктивна. Разберитесь в ней поглубже, господа! ЧАЛ, голубчик, неглупые люди разобрались уже во всём и без нас :) Психологическая энциклопедия ШИЗОФАЗИЯ - (шизо + греч. phasis - речь) [Kraepelin E., 1913]. Своеобразное проявление мыслительно-речевых расстройств при шизофрении. Первоначально выделялась как особая форма шизофрении, при которой резко выраженная разорванность и совершенно непонятная речь контрастируют с внешней упорядоченностью, известной доступностью и относительной интеллектуальной и аффективной сохранностью больных. Характерна повышенная речевая активность, речевой напор. Выражен симптом монолога, характеризующийся речевой неистощимостью и отсутствием потребности в собеседнике. В настоящее время рассматривается как этап течения параноидной шизофрении [Вроно М.Ш., 1959]. По A. Kronfeld [1940], Ш. близка к разорванности, общим для них является важная роль в формировании клинической картины психомоторно-кататонических динамизмов. Описаны случаи, когда Ш. проявлялась только в письменной речи (шизография) [Levi-Valensy J., Migault P., Lacan J., 1931]. Тратить время на всяких фриков - нет уж увольте :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 17:20 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
БредСлишком много неправды у Вас в одном сообщении.Вот и меня в лгунов записали :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 17:31 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andrey Выбегалло А где тут 1000 колонок типа int ? А где у Cashe 1000 колонок? Там вообще нет ни одной колонки. Выбегалло А, пардон, сразу не просек. Ну да, ну да - это та самая схема хранения, в которой элементарный запрос надо полдня продумывать, а потом сервер полдня джойны хреначит. Знакомая штука. Время продумывания и время выполнения зависит в основном от умственных способностей продумывающего, а не от сервера и т.п. А нарисуйте мне SELECT A,B,C from table1 WHERE id = 1 and datastamp = '2007-07-26' ? У меня заняло 30 секунд запрос напечатать - сколько у вас займет ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 22:54 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Выбегалло Bogdanov Andrey Выбегалло А где тут 1000 колонок типа int ? А где у Cashe 1000 колонок? Там вообще нет ни одной колонки. Выбегалло А, пардон, сразу не просек. Ну да, ну да - это та самая схема хранения, в которой элементарный запрос надо полдня продумывать, а потом сервер полдня джойны хреначит. Знакомая штука. Время продумывания и время выполнения зависит в основном от умственных способностей продумывающего, а не от сервера и т.п. А нарисуйте мне SELECT A,B,C from table1 WHERE id = 1 and datastamp = '2007-07-26' ? У меня заняло 30 секунд запрос напечатать - сколько у вас займет ? И, кстати, вы как собираетесь char-ы с int-ами хранить - кошерно, в отдельных таблицах, или все в varchar-ы преобразовывать будете ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 23:26 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
ВыбегаллоА нарисуйте мне SELECT A,B,C from table1 WHERE id = 1 and datastamp = '2007-07-26' ? У меня заняло 30 секунд запрос напечатать - сколько у вас займет ? Код: plaintext 1. Итого секунд 25. Ну а вообще, никто не мешает сделать view. ВыбегаллоИ, кстати, вы как собираетесь char-ы с int-ами хранить - кошерно, в отдельных таблицах, или все в varchar-ы преобразовывать будете ? В условиях тестовой задачи было четко сказано "значения типа int". А в реальной жизни я буду выбирать способ хранения наиболее адекватный задаче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2007, 09:34 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andrey ВыбегаллоА нарисуйте мне SELECT A,B,C from table1 WHERE id = 1 and datastamp = '2007-07-26' ? У меня заняло 30 секунд запрос напечатать - сколько у вас займет ? Код: plaintext 1. Итого секунд 25. Ну а вообще, никто не мешает сделать view. Maybe Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Так, наверно, более подобно селекту из вопроса? ColId = 4 для колонки id. Кстати, Андрей, как я понял в исходном селекте подразумевалось, что id не уникальны, иначе второе условие бессмыслено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2007, 11:12 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andrey Бред Спасибо, я удовлетворен Вашим объяснением. Я уже сказал, отвечая pavelvp, что видел бегло пока три СУБД в Cache. И во всех есть таблицы и колонки (просто называется это другими словами, так же как есть отношения и атрибуты в реляционной теории). Пусть поправят лучше знающие, если в чем-то ошибусь. Родная Cache Objects имеет в базовом способе хранения ограничение на число колонок в таблице, просто из-за ограничения на длину записи 32К. Говорится, что можно как угодно переопределять способ хранения данных, но как при этом обеспечивется концептуальная целостность (запросы и т.д.) понятия не имею. Больше мне понравились модели данных и их хранение (не "переопределяемое") в q.Word и X.Magic. В частности, как раз в последней нет ограничений на число колонок в таблице. И именно такую схему я и использовал в тесте. Я не хочу ругать Cache или или хвалить Oracle. Своим постом я хотел показать, что простое сравнение объема занимаемого данными - задача бессмысленная в отрыве от решаемой задачи и от конкретной прикладной постановки. Да, способы организации информации в разных СУБД - разные. Но при любом способе хранения можно добиться минимизации объема. И кстати, предлагаемый мною вариант очень часто используется (к сожалению и где надо и где не надо - честно скажу, что чаще, где не надо). А я просто сравниваю, потому что раздел так называется. Я тоже не ругаю и не хвалю, а привожу результат. Еще раз: у этих колонок могут быть свои ограничения целостности, имена (смысл). Именно Ваш способ и делает тест бессмысленным. Результат Oracle: 1.11 Гб. Я его не ругаю, и не хвалю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2007, 12:55 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Andreww Очень подходящий ник :)Эта подтема более конструктивна. Разберитесь в ней поглубже, господа! ЧАЛ, голубчик, неглупые люди разобрались уже во всём и без нас :) Психологическая энциклопедия ШИЗОФАЗИЯ - (шизо + греч. phasis - речь) [Kraepelin E., 1913]. Своеобразное проявление мыслительно-речевых расстройств при шизофрении. Первоначально выделялась как особая форма шизофрении, при которой резко выраженная разорванность и совершенно непонятная речь контрастируют с внешней упорядоченностью, известной доступностью и относительной интеллектуальной и аффективной сохранностью больных. Характерна повышенная речевая активность, речевой напор. Выражен симптом монолога, характеризующийся речевой неистощимостью и отсутствием потребности в собеседнике. В настоящее время рассматривается как этап течения параноидной шизофрении [Вроно М.Ш., 1959]. По A. Kronfeld [1940], Ш. близка к разорванности, общим для них является важная роль в формировании клинической картины психомоторно-кататонических динамизмов. Описаны случаи, когда Ш. проявлялась только в письменной речи (шизография) [Levi-Valensy J., Migault P., Lacan J., 1931]. Тратить время на всяких фриков - нет уж увольте :) Люди, может кто может попросить чала как-то прореагировать. А то люди как на иголках: "нет уж увольте", а сами с головой погрузились в тему, несчастные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2007, 12:58 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
БредЛюди, может кто может попросить чала как-то прореагировать. А то люди как на иголках: "нет уж увольте", а сами с головой погрузились в тему, несчастные. Вот Вы и попросите :) Вам ведь, наверное сподручнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2007, 14:47 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan) БредЛюди, может кто может попросить чала как-то прореагировать. А то люди как на иголках: "нет уж увольте", а сами с головой погрузились в тему, несчастные. Вот Вы и попросите :) Вам ведь, наверное сподручнее А у Вас какой-то другой результат получился? Вы, уважаемый Сергей Валентинович, вчера при очной встрече говорили, что опубликуете свой результат. А вместо этого тоже переключились на воспоминания о чале. Кстати, я считаю, что Вам сподручнее, все-таки, в соседних зданиях сидите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2007, 15:08 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Вы меня с кем то определенно путаете, Уважаемый Коллега Валентинович - это мой сын (и не Сергей, а Дмитрий, что характерно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2007, 15:46 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
БредА я просто сравниваю, потому что раздел так называется. Я тоже не ругаю и не хвалю, а привожу результат. Еще раз: у этих колонок могут быть свои ограничения целостности, имена (смысл). Именно Ваш способ и делает тест бессмысленным. Результат Oracle: 1.11 Гб. Я его не ругаю, и не хвалю. Мне как раз кажется, что ваше сравнение совершенно бессмысленно. Вы взяли некий объект в Oracle и некий объект в Cache почему-то решили, что это однородные объекты и решили сравнить их размер. С таким же успехом можно сказать, что у Эйфелевой башни 300 метров, а у великой китайской стены - 6 миллионов метров (могу ошибиться с цифрами). Это сравнение ни о чем. Вот если вы возьмете некую приклдадную задачу, то можно сравнивать ее реализации. Вы можете сказать, что взяли вот задачу хранения разреженных массивов (осталось только строго формализовать ее) и сравнили. Но заметим, что при этом вы сравнили не СУБД, а две ВАШИХ реализации этой задачи. Как только я предложил другую реализацию вы начали навешивать дополнительные требования и ограничения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2007, 15:58 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Bogdanov AndreyС таким же успехом можно сказать, что у Эйфелевой башни 300 метров, а у великой китайской стены - 6 миллионов метров Браво. Великолепная аналогия, и по точности, и по образности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2007, 16:50 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Вы меня с кем то определенно путаете, Уважаемый Коллега Валентинович - это мой сын (и не Сергей, а Дмитрий, что характерно) Сережа, дорогой, ну не надо, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2007, 19:35 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andrey БредА я просто сравниваю, потому что раздел так называется. Я тоже не ругаю и не хвалю, а привожу результат. Еще раз: у этих колонок могут быть свои ограничения целостности, имена (смысл). Именно Ваш способ и делает тест бессмысленным. Результат Oracle: 1.11 Гб. Я его не ругаю, и не хвалю. Мне как раз кажется, что ваше сравнение совершенно бессмысленно. Вы взяли некий объект в Oracle и некий объект в Cache почему-то решили, что это однородные объекты и решили сравнить их размер. С таким же успехом можно сказать, что у Эйфелевой башни 300 метров, а у великой китайской стены - 6 миллионов метров (могу ошибиться с цифрами). Это сравнение ни о чем. Вот если вы возьмете некую приклдадную задачу, то можно сравнивать ее реализации. Вы можете сказать, что взяли вот задачу хранения разреженных массивов (осталось только строго формализовать ее) и сравнили. Но заметим, что при этом вы сравнили не СУБД, а две ВАШИХ реализации этой задачи. Как только я предложил другую реализацию вы начали навешивать дополнительные требования и ограничения. Вам это именно кажется. Я взял два абсолютно однородных объекта с одинаковой логической структурой , и посмотрел на разницу на физическом уровне. Это настолько очевидно, что непонятно что же Вам там кажется до сих пор? Далее, см. про типы, ограничения целостности и т.д. при переходе к конкретным задачам. О Вашей реализации я сказал ДО ТОГО КАК ВЫ ЕЕ ОПУБЛИКОВАЛИ, заметьте. И именно она делает тест бессмысленным. Вы сделали другой тест. Почему? У меня только одно объяснение: Вас почему-то задели 1.11 Гб (ума не приложу почему; как-будто это единственный минус Oracle). Никаких других объяснений не соглашаться с результатом, полученным Вашим коллегой без умышленного искажения логической структуры данных, я не вижу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2007, 19:42 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
softwarer Bogdanov AndreyС таким же успехом можно сказать, что у Эйфелевой башни 300 метров, а у великой китайской стены - 6 миллионов метров Браво. Великолепная аналогия, и по точности, и по образности. Пальцем в небо, как всегда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2007, 19:43 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Бред Вы не в первый раз выдаете фразу, достойную стать Вашей автоподписью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2007, 19:44 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
softwarer Bogdanov AndreyС таким же успехом можно сказать, что у Эйфелевой башни 300 метров, а у великой китайской стены - 6 миллионов метров Браво. Великолепная аналогия, и по точности, и по образности. Пальцем в небо, как всегда. И я это четко объяснил. По существу обсуждаемого вопроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2007, 19:50 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
БредИ я это четко объяснил. По существу обсуждаемого вопроса. По существу. Мне часто жаль, что большинство людей не владеет формальной логикой на уровне, достаточном, чтобы мало-мальски трезво оценивать собственные утверждения. В частности, довольно часто человек делает логичное как ему кажется утверждение только потому, что считает свои неполные знания исчерпывающими, и соответственно переводит "я не вижу других вариантов" в "нет других вариантов". То, что заданный Вами вопрос бессмысленен, я объяснил очень давно. С тех пор забавно, конечно, наблюдать, но не более того. Конкретно сейчас Вы делаете одну детскую ошибку: полагаете, что существует однозначное соответствие между логической и физической структурами. Вы исходите из предположения, что "есть логическая структура, которая здесь отражается вот так, здесь отражается эдак". Реально и "здесь" и "там" одна и та же логическая структура отражается уймой способов, найти оптимальное отражение - одна из задач архитектора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2007, 20:15 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
softwarer БредИ я это четко объяснил. По существу обсуждаемого вопроса. По существу. Мне часто жаль, что большинство людей не владеет формальной логикой на уровне, достаточном, чтобы мало-мальски трезво оценивать собственные утверждения. В частности, довольно часто человек делает логичное как ему кажется утверждение только потому, что считает свои неполные знания исчерпывающими, и соответственно переводит "я не вижу других вариантов" в "нет других вариантов". То, что заданный Вами вопрос бессмысленен, я объяснил очень давно. С тех пор забавно, конечно, наблюдать, но не более того. Конкретно сейчас Вы делаете одну детскую ошибку: полагаете, что существует однозначное соответствие между логической и физической структурами. Вы исходите из предположения, что "есть логическая структура, которая здесь отражается вот так, здесь отражается эдак". Реально и "здесь" и "там" одна и та же логическая структура отражается уймой способов, найти оптимальное отражение - одна из задач архитектора. Это Вы, как раз, делаете ошибку, которая не дотягивает даже до детской, оставаясь младенческой: не замечаете подмену логической структуры другой логической структурой. Ну ничего, здесь таких младенцев много. Только как-то грустно, что даже не стремитесь к пониманию предмета Вашего труда. Нелегкого младенческого труда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2007, 20:43 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Привет, Бред! Ты пишешь: БредБ> Это Вы, как раз, делаете ошибку, которая не дотягивает даже до детской, Б> оставаясь младенческой: не замечаете подмену Б> логической структуры другой логической структурой. Б> Ну ничего, здесь таких младенцев много. Б> Только как-то грустно, что даже не стремитесь к Б> пониманию предмета Вашего труда. Б> Нелегкого младенческого труда.о труде однофамильца(?): http://www.sign-forum.ru/./viewtopic.php?t=5364 зы: навеяно музыкой, алкоголем и гуглем... -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2007, 20:47 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
БредТолько как-то грустно, что даже не стремитесь к пониманию предмета Вашего труда. Здравствуйте, Андрей Леонидович. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2007, 21:32 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andrey ВыбегаллоА нарисуйте мне SELECT A,B,C from table1 WHERE id = 1 and datastamp = '2007-07-26' ? У меня заняло 30 секунд запрос напечатать - сколько у вас займет ? Код: plaintext 1. Итого секунд 25. Ну а вообще, никто не мешает сделать view. ВыбегаллоИ, кстати, вы как собираетесь char-ы с int-ами хранить - кошерно, в отдельных таблицах, или все в varchar-ы преобразовывать будете ? В условиях тестовой задачи было четко сказано "значения типа int". А в реальной жизни я буду выбирать способ хранения наиболее адекватный задаче. Вы, Андрей, извиняюсь, написали за 25 секунд полную фигню. Начнем с того, что вы попутали RecordID (аналог Row ID, внутренняя переменная) с колонкой ID. Что собственно доказывает мой пойнт - для работы с такими структурами надо иметь немало серого вещества в голове и свободного времени на руках. Вот вам тестовый пример, и попробуйте таки написать SELECT, возвращающий ПРАВИЛЬНЫЕ значения. Дано : "Просто" таблица declare LOCAL TEMPORARY TABLE RealTable( a int, b int, c int, ID int) on commit preserve rows; Засовываем в нее 3 записи : insert into RealTable (a,b,c, ID) values (11, 21, 31, 1); insert into RealTable (a,b,c, ID) values (12, 22, 32, 1); insert into RealTable (a,b,c, ID) values (13, 23, 33, 2); Пишем селект: select a, b, c from RealTable where id = 1; Результат : a,b,c 11,21,31 12,22,32 Теперь переводим все это в "удобную плоскую форму" : declare LOCAL TEMPORARY TABLE EmptyTable( recordID int, colId int, colValue int) on commit preserve rows; /* record 1 */ insert into EmptyTable(RecordId,ColId,ColValue) values (1, 1, 11); insert into EmptyTable(RecordId,ColId,ColValue) values (1, 2, 21); insert into EmptyTable(RecordId,ColId,ColValue) values (1, 3, 31); insert into EmptyTable(RecordId,ColId,ColValue) values (1, 4, 1); /* record 2 */ insert into EmptyTable(RecordId,ColId,ColValue) values (2, 1, 12); insert into EmptyTable(RecordId,ColId,ColValue) values (2, 2, 22); insert into EmptyTable(RecordId,ColId,ColValue) values (2, 3, 32); insert into EmptyTable(RecordId,ColId,ColValue) values (2, 4, 1); /* record 3 */ insert into EmptyTable(RecordId,ColId,ColValue) values (3, 1, 12); insert into EmptyTable(RecordId,ColId,ColValue) values (3, 2, 22); insert into EmptyTable(RecordId,ColId,ColValue) values (3, 3, 32); insert into EmptyTable(RecordId,ColId,ColValue) values (3, 4, 2); Ваш SELECT : select ColValue A, ColValue B, ColValue C from EmptyTable where RecordId = 1; Результаты : A,B,C 11,11,11 21,21,21 31,31,31 1,1,1 Ну полная фигня, верно ? Результаты drev (идея получше), но все равно фигня получается : select max(A), max(B), max(C) from ( select ColValue A, ColValue B, ColValue C, RecordId from emptyTable a where exists ( select 1 from EmptyTable b where b.RecordId = a.RecordId and b.ColId = 4 and b.ColValue = 1) ) tmpr group by RecordId max(a.ColValue as A), max(a.ColValue as B), max(a.ColValue as C) 31,31,31 32,32,32 В общем, думайте еще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2007, 22:11 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Выбегалло Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2007, 22:41 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
dmidek Выбегалло Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext 1. 2. это на каком диалекте ? Ни Informix, ни Sybase IQ не понимают "select over", "partition by". Нельзя ли ограничиться стандартом ? И нахрена там decode ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2007, 22:59 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Выбегалло dmidek Выбегалло Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext 1. 2. это на каком диалекте ? Ни Informix, ни Sybase IQ не понимают "select over", "partition by". Нельзя ли ограничиться стандартом ? И нахрена там decode ? Это Oracle. Аналитические функции. Доступны с 8i В каком смысле "на хрена" ? Вот FAQ: Транспонирование строк в стобцы Банальные вещи ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2007, 23:13 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
dmidek Выбегалло dmidek Выбегалло Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext 1. 2. это на каком диалекте ? Ни Informix, ни Sybase IQ не понимают "select over", "partition by". Нельзя ли ограничиться стандартом ? И нахрена там decode ? Это Oracle. Аналитические функции. Доступны с 8i В каком смысле "на хрена" ? Вот FAQ: Транспонирование строк в стобцы Банальные вещи ... Ну вы таки попробуйте без извратов, на чистом SQL. Чтобы типа переносимо было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2007, 00:26 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andrey БредА я просто сравниваю, потому что раздел так называется. Я тоже не ругаю и не хвалю, а привожу результат. Еще раз: у этих колонок могут быть свои ограничения целостности, имена (смысл). Именно Ваш способ и делает тест бессмысленным. Результат Oracle: 1.11 Гб. Я его не ругаю, и не хвалю. Мне как раз кажется, что ваше сравнение совершенно бессмысленно. Вы взяли некий объект в Oracle и некий объект в Cache почему-то решили, что это однородные объекты и решили сравнить их размер. С таким же успехом можно сказать, что у Эйфелевой башни 300 метров, а у великой китайской стены - 6 миллионов метров (могу ошибиться с цифрами). Это сравнение ни о чем. Вот если вы возьмете некую приклдадную задачу, то можно сравнивать ее реализации. Вы можете сказать, что взяли вот задачу хранения разреженных массивов (осталось только строго формализовать ее) и сравнили. Но заметим, что при этом вы сравнили не СУБД, а две ВАШИХ реализации этой задачи. Как только я предложил другую реализацию вы начали навешивать дополнительные требования и ограничения. Ну дело таки в том, что реализация "разряженных массивов" в Oracle таки хромает. Занимается масса дискового пространства, которое никак не используется. Хуже того - при выборке приходится все это пустое место считывать с диска и кидать в память, при записи - сливать на диск. Имеете что возразить ? При прочих равных, СУБД с более компактным хранением данных имеет преимущество в скорости выполнения запросов. Не говоря уже о стоимости дисков. Проблема коллеги ЧАЛа в том, что он свято убежден в порочности реляционной ИДЕИ. Вот тут-то Sybase IQ и вставляет ему перо в ж... в одно место. Оказывается, можно хранить "разряженные массивы" экономно - и при этом оставаться реляционной СУБД. Все зависит от внутренней реализации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2007, 00:39 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Выбегалло Ну вы таки попробуйте без извратов, на чистом SQL. Чтобы типа переносимо было. Хорошо, тогда эмулируем row_number с помощью rownum Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2007, 00:44 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
dmidek Это Oracle. Аналитические функции. Доступны с 8i В каком смысле "на хрена" ? Вот FAQ: Транспонирование строк в стобцы Банальные вещи ... Специалист в Оракле подобен флюсу: полнота его односторонняя. (С) Попробуйте для расширения кругозора попереносить эти "вещи" на Informix, DB2 или Sybase. Я вас уверяю, ваша склонность пользоваться "банальными вещами" резко уменьшится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2007, 00:45 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
dmidek Выбегалло Ну вы таки попробуйте без извратов, на чистом SQL. Чтобы типа переносимо было. Хорошо, тогда эмулируем row_number с помощью rownum Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: plaintext 1. 2. Вы техзадания тоже как понимаете ? Или просто незнакомы со стандартом ? Повторяю задачу : написать SQL понимаемый большинством СУБД. Это значит, не надо использовать DECODE, ROWNUM, и MOD тоже нежелателен (без него вполне можно обойтись). Так уж и быть, SELECT from (SELECT) достаточно легко эмулировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2007, 00:50 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Выбегалло Bogdanov Andrey ВыбегаллоА нарисуйте мне SELECT A,B,C from table1 WHERE id = 1 and datastamp = '2007-07-26' ? У меня заняло 30 секунд запрос напечатать - сколько у вас займет ? Код: plaintext 1. Итого секунд 25. Ну а вообще, никто не мешает сделать view. ВыбегаллоИ, кстати, вы как собираетесь char-ы с int-ами хранить - кошерно, в отдельных таблицах, или все в varchar-ы преобразовывать будете ? В условиях тестовой задачи было четко сказано "значения типа int". А в реальной жизни я буду выбирать способ хранения наиболее адекватный задаче. Вы, Андрей, извиняюсь, написали за 25 секунд полную фигню. Начнем с того, что вы попутали RecordID (аналог Row ID, внутренняя переменная) с колонкой ID. Что собственно доказывает мой пойнт - для работы с такими структурами надо иметь немало серого вещества в голове и свободного времени на руках. Вот вам тестовый пример, и попробуйте таки написать SELECT, возвращающий ПРАВИЛЬНЫЕ значения. Дано : "Просто" таблица declare LOCAL TEMPORARY TABLE RealTable( a int, b int, c int, ID int) on commit preserve rows; Засовываем в нее 3 записи : insert into RealTable (a,b,c, ID) values (11, 21, 31, 1); insert into RealTable (a,b,c, ID) values (12, 22, 32, 1); insert into RealTable (a,b,c, ID) values (13, 23, 33, 2); Пишем селект: select a, b, c from RealTable where id = 1; Результат : a,b,c 11,21,31 12,22,32 Теперь переводим все это в "удобную плоскую форму" : declare LOCAL TEMPORARY TABLE EmptyTable( recordID int, colId int, colValue int) on commit preserve rows; /* record 1 */ insert into EmptyTable(RecordId,ColId,ColValue) values (1, 1, 11); insert into EmptyTable(RecordId,ColId,ColValue) values (1, 2, 21); insert into EmptyTable(RecordId,ColId,ColValue) values (1, 3, 31); insert into EmptyTable(RecordId,ColId,ColValue) values (1, 4, 1); /* record 2 */ insert into EmptyTable(RecordId,ColId,ColValue) values (2, 1, 12); insert into EmptyTable(RecordId,ColId,ColValue) values (2, 2, 22); insert into EmptyTable(RecordId,ColId,ColValue) values (2, 3, 32); insert into EmptyTable(RecordId,ColId,ColValue) values (2, 4, 1); /* record 3 */ insert into EmptyTable(RecordId,ColId,ColValue) values (3, 1, 12); insert into EmptyTable(RecordId,ColId,ColValue) values (3, 2, 22); insert into EmptyTable(RecordId,ColId,ColValue) values (3, 3, 32); insert into EmptyTable(RecordId,ColId,ColValue) values (3, 4, 2); Ваш SELECT : select ColValue A, ColValue B, ColValue C from EmptyTable where RecordId = 1; Результаты : A,B,C 11,11,11 21,21,21 31,31,31 1,1,1 Ну полная фигня, верно ? Результаты drev (идея получше), но все равно фигня получается : select max(A), max(B), max(C) from ( select ColValue A, ColValue B, ColValue C, RecordId from emptyTable a where exists ( select 1 from EmptyTable b where b.RecordId = a.RecordId and b.ColId = 4 and b.ColValue = 1) ) tmpr group by RecordId max(a.ColValue as A), max(a.ColValue as B), max(a.ColValue as C) 31,31,31 32,32,32 В общем, думайте еще. Вы упростили мой селект:) если вы вернете decode, то получите ровно правильный результат:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2007, 01:27 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
drev Выбегалло Bogdanov Andrey ВыбегаллоА нарисуйте мне SELECT A,B,C from table1 WHERE id = 1 and datastamp = '2007-07-26' ? У меня заняло 30 секунд запрос напечатать - сколько у вас займет ? Код: plaintext 1. Итого секунд 25. Ну а вообще, никто не мешает сделать view. ВыбегаллоИ, кстати, вы как собираетесь char-ы с int-ами хранить - кошерно, в отдельных таблицах, или все в varchar-ы преобразовывать будете ? В условиях тестовой задачи было четко сказано "значения типа int". А в реальной жизни я буду выбирать способ хранения наиболее адекватный задаче. Вы, Андрей, извиняюсь, написали за 25 секунд полную фигню. Начнем с того, что вы попутали RecordID (аналог Row ID, внутренняя переменная) с колонкой ID. Что собственно доказывает мой пойнт - для работы с такими структурами надо иметь немало серого вещества в голове и свободного времени на руках. Вот вам тестовый пример, и попробуйте таки написать SELECT, возвращающий ПРАВИЛЬНЫЕ значения. Дано : "Просто" таблица declare LOCAL TEMPORARY TABLE RealTable( a int, b int, c int, ID int) on commit preserve rows; Засовываем в нее 3 записи : insert into RealTable (a,b,c, ID) values (11, 21, 31, 1); insert into RealTable (a,b,c, ID) values (12, 22, 32, 1); insert into RealTable (a,b,c, ID) values (13, 23, 33, 2); Пишем селект: select a, b, c from RealTable where id = 1; Результат : a,b,c 11,21,31 12,22,32 Теперь переводим все это в "удобную плоскую форму" : declare LOCAL TEMPORARY TABLE EmptyTable( recordID int, colId int, colValue int) on commit preserve rows; /* record 1 */ insert into EmptyTable(RecordId,ColId,ColValue) values (1, 1, 11); insert into EmptyTable(RecordId,ColId,ColValue) values (1, 2, 21); insert into EmptyTable(RecordId,ColId,ColValue) values (1, 3, 31); insert into EmptyTable(RecordId,ColId,ColValue) values (1, 4, 1); /* record 2 */ insert into EmptyTable(RecordId,ColId,ColValue) values (2, 1, 12); insert into EmptyTable(RecordId,ColId,ColValue) values (2, 2, 22); insert into EmptyTable(RecordId,ColId,ColValue) values (2, 3, 32); insert into EmptyTable(RecordId,ColId,ColValue) values (2, 4, 1); /* record 3 */ insert into EmptyTable(RecordId,ColId,ColValue) values (3, 1, 12); insert into EmptyTable(RecordId,ColId,ColValue) values (3, 2, 22); insert into EmptyTable(RecordId,ColId,ColValue) values (3, 3, 32); insert into EmptyTable(RecordId,ColId,ColValue) values (3, 4, 2); Ваш SELECT : select ColValue A, ColValue B, ColValue C from EmptyTable where RecordId = 1; Результаты : A,B,C 11,11,11 21,21,21 31,31,31 1,1,1 Ну полная фигня, верно ? Результаты drev (идея получше), но все равно фигня получается : select max(A), max(B), max(C) from ( select ColValue A, ColValue B, ColValue C, RecordId from emptyTable a where exists ( select 1 from EmptyTable b where b.RecordId = a.RecordId and b.ColId = 4 and b.ColValue = 1) ) tmpr group by RecordId max(a.ColValue as A), max(a.ColValue as B), max(a.ColValue as C) 31,31,31 32,32,32 В общем, думайте еще. Вы упростили мой селект:) если вы вернете decode, то получите ровно правильный результат:) К сожалению, мне не на чем ваш правильный результат проверить. Попробуйте написать SELECT для не-ораклистов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2007, 01:34 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Поверьте на слово. Или напишите функцию на Вашем диалекте, которая принимает три параметра. Если первый равен второму - вернуть третий, иначе - null. Кстати, на мой вгляд, идея "писать на стандарте" порочна в 99% случаев. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2007, 01:45 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
drevПоверьте на слово. Или напишите функцию на Вашем диалекте, которая принимает три параметра. Если первый равен второму - вернуть третий, иначе - null. Кстати, на мой вгляд, идея "писать на стандарте" порочна в 99% случаев. Я это понимаю так, что стандарта вы не знаете, и без левых функций обойтись не можете. Или таки можете ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2007, 01:52 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Выбегалло drevПоверьте на слово. Или напишите функцию на Вашем диалекте, которая принимает три параметра. Если первый равен второму - вернуть третий, иначе - null. Кстати, на мой вгляд, идея "писать на стандарте" порочна в 99% случаев. Я это понимаю так, что стандарта вы не знаете, и без левых функций обойтись не можете. Или таки можете ? 1. "наезжать" не стоит:) меняйте тон:) 2. вызов детерминисткой UDF в селект листе разрешен стандартом :) 3. я не-ораклист :) на SQL Server, например, я бы написал через case:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2007, 02:08 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Выбегалло Кстати, оффтопик, просто интересно. Я понимаю, Аризона, с ИТ проблемы.. Но Вам не надоело работать с "мёртвой" СУБД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2007, 02:25 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
drev Выбегалло drevПоверьте на слово. Или напишите функцию на Вашем диалекте, которая принимает три параметра. Если первый равен второму - вернуть третий, иначе - null. Кстати, на мой вгляд, идея "писать на стандарте" порочна в 99% случаев. Я это понимаю так, что стандарта вы не знаете, и без левых функций обойтись не можете. Или таки можете ? 1. "наезжать" не стоит:) меняйте тон:) 2. вызов детерминисткой UDF в селект листе разрешен стандартом :) 3. я не-ораклист :) на SQL Server, например, я бы написал через case:) Case нынче практически все понимают, так что case Ok. Допустим, выродится все это в изврат типа create view emptyview as select max(A) A, max(B) B, max(C) C, max(ID) ID from ( select case when ColId =1 THEN ColValue ELSE null END A, case when ColId =2 then ColValue ELSE null END B, case when ColId =3 then ColValue ELSE null END C, case when ColId =4 then ColValue ELSE null END ID, RecordId from emptytable a ) tmpr group by RecordId Заметьте, что данный результат получен к концу второго дня. Мы пришли к View, который позволяет вернуться к простоте классического селекта. Можно, конечно, оставить все как есть (без view), понадеявшись, что бизнес-юзера умственными способностями уж не слабже Андрея Богданова будут (который сходу нашел очевидное и легкое для понимания неправильное решение) - но я бы не рискнул. Они (юзера) могут и причиндалы оторвать за подобное. Но что вы с индексами будете делать ? select * from emptyview where A = 1 - ему же не один индекс даже теоретически не поможет, придется всю таблицу каждый раз перечитывать. А допустим у вас пара миллиардов записей в обычной таблице, да колонок в ней 100-150 (ну любят аналитики такие схемы) - и сколько строк у вас получится ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2007, 02:26 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
drev Выбегалло Кстати, оффтопик, просто интересно. Я понимаю, Аризона, с ИТ проблемы.. Но Вам не надоело работать с "мёртвой" СУБД? С какой из трех ? IQ, Informix или DB2 ? Слухи о смерти любой из них несколько преувеличены. И потом, смквельсерверщиков вокруг - плюнуть некуда, ораклистов как собак, а информиксоиды - люди редкие, дорогие... :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2007, 02:29 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
индекс по колИД + колВелью должен сильно помочь:) Кстати, а почему все эти вопросы ко мне?:) Я просто исправил селект:) И совсем не считаю, что это правильный подход:)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2007, 02:33 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Выбегалло drev Выбегалло Кстати, оффтопик, просто интересно. Я понимаю, Аризона, с ИТ проблемы.. Но Вам не надоело работать с "мёртвой" СУБД? С какой из трех ? IQ, Informix или DB2 ? Слухи о смерти любой из них несколько преувеличены. И потом, смквельсерверщиков вокруг - плюнуть некуда, ораклистов как собак, а информиксоиды - люди редкие, дорогие... :-) С первых двух:) Не знаю, нишевый маркет..опасно.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2007, 02:37 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
drev Выбегалло drev Выбегалло Кстати, оффтопик, просто интересно. Я понимаю, Аризона, с ИТ проблемы.. Но Вам не надоело работать с "мёртвой" СУБД? С какой из трех ? IQ, Informix или DB2 ? Слухи о смерти любой из них несколько преувеличены. И потом, смквельсерверщиков вокруг - плюнуть некуда, ораклистов как собак, а информиксоиды - люди редкие, дорогие... :-) С первых двух:) Не знаю, нишевый маркет..опасно.. 11 лет - полет нормальный. Зато практически нет индусов, рождающихся со знанием Informix. А вот на Transact SQL, судя по их резюме, им мама колыбельные пела :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2007, 02:41 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Выбегалло drev Выбегалло drevПоверьте на слово. Или напишите функцию на Вашем диалекте, которая принимает три параметра. Если первый равен второму - вернуть третий, иначе - null. Кстати, на мой вгляд, идея "писать на стандарте" порочна в 99% случаев. Я это понимаю так, что стандарта вы не знаете, и без левых функций обойтись не можете. Или таки можете ? 1. "наезжать" не стоит:) меняйте тон:) 2. вызов детерминисткой UDF в селект листе разрешен стандартом :) 3. я не-ораклист :) на SQL Server, например, я бы написал через case:) Case нынче практически все понимают, так что case Ok. Допустим, выродится все это в изврат типа create view emptyview as select max(A) A, max(B) B, max(C) C, max(ID) ID from ( select case when ColId =1 THEN ColValue ELSE null END A, case when ColId =2 then ColValue ELSE null END B, case when ColId =3 then ColValue ELSE null END C, case when ColId =4 then ColValue ELSE null END ID, RecordId from emptytable a ) tmpr group by RecordId Заметьте, что данный результат получен к концу второго дня. Мы пришли к View, который позволяет вернуться к простоте классического селекта. Можно, конечно, оставить все как есть (без view), понадеявшись, что бизнес-юзера умственными способностями уж не слабже Андрея Богданова будут (который сходу нашел очевидное и легкое для понимания неправильное решение) - но я бы не рискнул. Они (юзера) могут и причиндалы оторвать за подобное. Но что вы с индексами будете делать ? select * from emptyview where A = 1 - ему же не один индекс даже теоретически не поможет, придется всю таблицу каждый раз перечитывать. А допустим у вас пара миллиардов записей в обычной таблице, да колонок в ней 100-150 (ну любят аналитики такие схемы) - и сколько строк у вас получится ? Кстати, селект Вы опять поломали:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2007, 02:48 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
drev Выбегалло Case нынче практически все понимают, так что case Ok. Допустим, выродится все это в изврат типа create view emptyview as select max(A) A, max(B) B, max(C) C, max(ID) ID from ( select case when ColId =1 THEN ColValue ELSE null END A, case when ColId =2 then ColValue ELSE null END B, case when ColId =3 then ColValue ELSE null END C, case when ColId =4 then ColValue ELSE null END ID, RecordId from emptytable a ) tmpr group by RecordId Заметьте, что данный результат получен к концу второго дня. Мы пришли к View, который позволяет вернуться к простоте классического селекта. Можно, конечно, оставить все как есть (без view), понадеявшись, что бизнес-юзера умственными способностями уж не слабже Андрея Богданова будут (который сходу нашел очевидное и легкое для понимания неправильное решение) - но я бы не рискнул. Они (юзера) могут и причиндалы оторвать за подобное. Но что вы с индексами будете делать ? select * from emptyview where A = 1 - ему же не один индекс даже теоретически не поможет, придется всю таблицу каждый раз перечитывать. А допустим у вас пара миллиардов записей в обычной таблице, да колонок в ней 100-150 (ну любят аналитики такие схемы) - и сколько строк у вас получится ? Кстати, селект Вы опять поломали:) Нибожемой. Перевел в case как Вы сказали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2007, 11:31 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
drev Кстати, селект Вы опять поломали:) drev, Ваш селект совершенно правилен Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: plaintext 1. 2. У Выбегалло трудности в приведении к стандартам SQL :-) 2Выбегалло : На случай, если Вы еще не разобрались в моих вариантах, скажу, что они являются более общим случаем рассмотренного , а именно работают и в том случае, когда colid не представляет собой непрерывную числовую последовательность от 1 до 4, а имеет четыре любых дискретных значения Кстати, как бы выглядел вариант на "стандартном" SQL, в котором colid расположены не непрерывно, а с дырками, ну скажем на таком примере Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. они могут быть любыми. Продемонстрируйте, если не трудно. Хочется насладиться мощью стандартных решений :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2007, 12:15 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
dmidek У Выбегалло трудности в приведении к стандартам SQL :-) У меня ? Да я тут единственный, кто ваши оракловские расширения переводит на нормальный язык. Вы себя что-то пока никак не проявили. dmidek 2Выбегалло : На случай, если Вы еще не разобрались в моих вариантах, скажу, что они являются более общим случаем рассмотренного , а именно работают и в том случае, когда colid не представляет собой непрерывную числовую последовательность от 1 до 4, а имеет четыре любых дискретных значения Кстати, как бы выглядел вариант на "стандартном" SQL, в котором colid расположены не непрерывно, а с дырками, ну скажем на таком примере Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. они могут быть любыми. Продемонстрируйте, если не трудно. Хочется насладиться мощью стандартных решений :-) По-моему, у вас склероз. Это я просил изобразить селект на СТАНДАРТНОМ SQL. И даже продемонстрировал пример с CASE. Вы себя на поприще умения работать со стандартом пока никак не проявили, так что сейчас как раз подходящий момент показать крутизну. А ваш "общий случай" не работает хотя бы потому, что вы не возвращаете четвертую колонку (ID ) - соответственно фильтр накладывать не на что. И относительно вашего замечания про привязывания к конкретным colid - вам при SELECTе имена колонок требуются ? Ну так в "плоской форме" их заменяют colid. Отфонаря их брать нельзя, фигня получится. Что является еще одним недостатком данной модели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2007, 01:05 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2007, 04:49 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Выбегалло dmidek У Выбегалло трудности в приведении к стандартам SQL :-) У меня ? Да я тут единственный, кто ваши оракловские расширения переводит на нормальный язык. Вы их неправильно переводите:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2007, 09:40 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Выбегалло dmidek У Выбегалло трудности в приведении к стандартам SQL :-) У меня ? Да я тут единственный, кто ваши оракловские расширения переводит на нормальный язык. Ну посмотрим Ваш перевод. Выбегалло Bogdanov Andrey ВыбегаллоА нарисуйте мне SELECT A,B,C from table1 WHERE id = 1 and datastamp = '2007-07-26' ? У меня заняло 30 секунд запрос напечатать - сколько у вас займет ? Код: plaintext 1. Итого секунд 25. Ну а вообще, никто не мешает сделать view. ВыбегаллоИ, кстати, вы как собираетесь char-ы с int-ами хранить - кошерно, в отдельных таблицах, или все в varchar-ы преобразовывать будете ? В условиях тестовой задачи было четко сказано "значения типа int". А в реальной жизни я буду выбирать способ хранения наиболее адекватный задаче. Вы, Андрей, извиняюсь, написали за 25 секунд полную фигню. Начнем с того, что вы попутали RecordID (аналог Row ID, внутренняя переменная) с колонкой ID. Что собственно доказывает мой пойнт - для работы с такими структурами надо иметь немало серого вещества в голове и свободного времени на руках. Ваш SELECT : select ColValue A, ColValue B, ColValue C from EmptyTable where RecordId = 1; Результаты : A,B,C 11,11,11 21,21,21 31,31,31 1,1,1 Ну полная фигня, верно ? Смотрите , Выбегалло, что Вы делаете. Берете селект Андрея, обзываете его полной фигней , а затем переводите. Перевод заключатеся в том, что Вы выбрасываете DECODE и оставляете только третий параметр Код: plaintext Такой метод перевода хорошо известен. Начинающему говорят "Выбрасывайте все незнакомые слова, оставляйте только то, что знаете". К сожалению, здесь такой прием не работает и показывает только Вашу вопиющую безграмотность, которая вкупе с апломбом производит совершенно удручающее впечатление. Не позорьтесь, скажите прямо "Я не знаю , что значит DECODE" И ВЫ еще меня спрашивали "А на фига здесь DECODE ?" Я подумал "Глубоко копает" А выясняется, да Вы просто не знаете. Теперь посмотрим Ваш другой опус. ВыбегаллоРезультаты drev (идея получше), но все равно фигня получается : select max(A), max(B), max(C) from ( select ColValue A, ColValue B, ColValue C, RecordId from emptyTable a where exists ( select 1 from EmptyTable b where b.RecordId = a.RecordId and b.ColId = 4 and b.ColValue = 1) ) tmpr group by RecordId max(a.ColValue as A), max(a.ColValue as B), max(a.ColValue as C) 31,31,31 32,32,32 В общем, думайте еще. Тот же самый приемчик.DECODE выброшен на свалку истории. Фигня конечно, которую Вы и произвели на свет Божий. dmidek По-моему, у вас склероз. Это я просил изобразить селект на СТАНДАРТНОМ SQL. И даже продемонстрировал пример с CASE. Вы себя на поприще умения работать со стандартом пока никак не проявили, так что сейчас как раз подходящий момент показать крутизну. А ваш "общий случай" не работает хотя бы потому, что вы не возвращаете четвертую колонку (ID ) - соответственно фильтр накладывать не на что. Ха-ха-ха, что значит "не работает" ? Вы результат видели ? Он получен в Oracle. Для фильтрации по определенному полю, его не надо указывать в select- списке Если мне понадобится представление, о котором я ничего не говорил, я добавлю ,col4 в результипующий SELECT. Это надеюсь понятно ? Выбегалло, Вы лучше философствуйте. Не надо опускаться до уровня кода. А то уж больно смешно выглядит. P.S. Как там мой примерчик ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2007, 11:19 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Вот drev - он повыделывался с decode, а потом взял и перевел в стандартные joinы . Типа могет человек. А вы только языком трепать горазды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2007, 21:24 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
dmidek Выбегалло dmidek У Выбегалло трудности в приведении к стандартам SQL :-) У меня ? Да я тут единственный, кто ваши оракловские расширения переводит на нормальный язык. Ну посмотрим Ваш перевод. Выбегалло Bogdanov Andrey ВыбегаллоА нарисуйте мне SELECT A,B,C from table1 WHERE id = 1 and datastamp = '2007-07-26' ? У меня заняло 30 секунд запрос напечатать - сколько у вас займет ? Код: plaintext 1. Итого секунд 25. Ну а вообще, никто не мешает сделать view. ВыбегаллоИ, кстати, вы как собираетесь char-ы с int-ами хранить - кошерно, в отдельных таблицах, или все в varchar-ы преобразовывать будете ? В условиях тестовой задачи было четко сказано "значения типа int". А в реальной жизни я буду выбирать способ хранения наиболее адекватный задаче. Вы, Андрей, извиняюсь, написали за 25 секунд полную фигню. Начнем с того, что вы попутали RecordID (аналог Row ID, внутренняя переменная) с колонкой ID. Что собственно доказывает мой пойнт - для работы с такими структурами надо иметь немало серого вещества в голове и свободного времени на руках. Ваш SELECT : select ColValue A, ColValue B, ColValue C from EmptyTable where RecordId = 1; Результаты : A,B,C 11,11,11 21,21,21 31,31,31 1,1,1 Ну полная фигня, верно ? Смотрите , Выбегалло, что Вы делаете. Берете селект Андрея, обзываете его полной фигней , а затем переводите. Перевод заключатеся в том, что Вы выбрасываете DECODE и оставляете только третий параметр Код: plaintext Такой метод перевода хорошо известен. Начинающему говорят "Выбрасывайте все незнакомые слова, оставляйте только то, что знаете". К сожалению, здесь такой прием не работает и показывает только Вашу вопиющую безграмотность, которая вкупе с апломбом производит совершенно удручающее впечатление. Не позорьтесь, скажите прямо "Я не знаю , что значит DECODE" Мне как-то глубоко покласть на ваше мнение о моей (без)грамотности, удивляет только, с какого перепугу вы решили, что оракловские расширения должны быть известны разработчикам других платформ. А select Андрея - он что без decode, что с decode - работать не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2007, 21:30 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
ВыбегаллоВот drev - он повыделывался с decode, а потом взял и перевел в стандартные joinы . Типа могет человек. drev допустил маленькую ошибочку. Надо так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ИМХО это overkill и первый вариант в 100 раз лучше... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2007, 22:04 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
dmidek ВыбегаллоВот drev - он повыделывался с decode, а потом взял и перевел в стандартные joinы . Типа могет человек. drev допустил маленькую ошибочку. Надо так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ИМХО это overkill и первый вариант в 100 раз лучше... А в каких диалектах нужно обязательно указывать ID в селект-листе, чтобы использовать в WHERE? Я так навскидку не помню. Да, оверкилл, но схема легче расширяется, если у нас колонки разных типов и для хранения используются несколько таблиц: для int, float, varchar, etc. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2007, 22:18 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Выбегалло Мне как-то глубоко покласть на ваше мнение о моей (без)грамотности, удивляет только, с какого перепугу вы решили, что оракловские расширения должны быть известны разработчикам других платформ. Да дело же совсем не в этом. Я вот совершенный ноль и в Sybase и в Informix, и в чем только нет, но это же не повод проводить вивисекцию кода и озвучивать неверные результаты ... Впрочем, это не оправдывает мой резкий тон. Извините пожалуйста, был в "реальном" очень дурном настроении :-( Выбегалло А select Андрея - он что без decode, что с decode - работать не будет. Здесь Вы правы, он нуждается в легкой доработке напильничком. В одном случае получится вариант drev, вот у меня еще такой симпатичный получился ... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2007, 22:28 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
drev dmidek ВыбегаллоВот drev - он повыделывался с decode, а потом взял и перевел в стандартные joinы . Типа могет человек. drev допустил маленькую ошибочку. Надо так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ИМХО это overkill и первый вариант в 100 раз лучше... А в каких диалектах нужно обязательно указывать ID в селект-листе, чтобы использовать в WHERE? Я так навскидку не помню. Да, оверкилл, но схема легче расширяется, если у нас колонки разных типов и для хранения используются несколько таблиц: для int, float, varchar, etc. Дело вовсе не в этом, у Вас была описка select t1.ColValue A, t1.ColValue B, t1.ColValue C, t1.ColValue ID ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2007, 22:32 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
dmidek Дело вовсе не в этом, у Вас была описка select t1.ColValue A, t1.ColValue B, t1.ColValue C, t1.ColValue ID aaa )))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2007, 22:37 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
ВыбегаллоВы техзадания тоже как понимаете ? Или просто незнакомы со стандартом ? Повторяю задачу : написать SQL понимаемый большинством СУБД. Это значит, не надо использовать DECODE, ROWNUM, и MOD тоже нежелателен (без него вполне можно обойтись). Так уж и быть, SELECT from (SELECT) достаточно легко эмулировать. Слава богу, что не вы мне техзадания выдаете. Я приводил пример хранения разреженных массивов в ORACLE. Вас этот пример не устроил тем, что в не смогли перенести его на другие СУБД. Извините, но это идиотизм. Мы либо обсуждаем реализацию разреженных массивов на Oracle, либо на других СУБД. По-поводу Oracle я все сказал, а про другие СУБД ничего говорить не хочу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 09:34 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andrey ВыбегаллоВы техзадания тоже как понимаете ? Или просто незнакомы со стандартом ? Повторяю задачу : написать SQL понимаемый большинством СУБД. Это значит, не надо использовать DECODE, ROWNUM, и MOD тоже нежелателен (без него вполне можно обойтись). Так уж и быть, SELECT from (SELECT) достаточно легко эмулировать. Слава богу, что не вы мне техзадания выдаете. Я приводил пример хранения разреженных массивов в ORACLE. Вас этот пример не устроил тем, что в не смогли перенести его на другие СУБД. Извините, но это идиотизм. Мы либо обсуждаем реализацию разреженных массивов на Oracle, либо на других СУБД. По-поводу Oracle я все сказал, а про другие СУБД ничего говорить не хочу. ничего специфически ораклового в задаче нет, и решается она вполне замечательно средствами стандартного SQL , причем двумя вариантами - с JOIN и с GROUP BY. Не знаю что лично вы обсуждали, а я обсуждал недостатки данной модели, которые на всех СУБД одинаковы - непрозрачность запросов для разработчиков и для оптимизатора. Первую проблему вы прекрасно проиллюстрировали на собственном примере. И это в самом упрощенном варианте. Вы попробуйте написать селект, использующий разные типы данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 10:43 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Выбегаллоничего специфически ораклового в задаче нет, и решается она вполне замечательно средствами стандартного SQL , причем двумя вариантами - с JOIN и с GROUP BY. Не знаю что лично вы обсуждали, а я обсуждал недостатки данной модели, которые на всех СУБД одинаковы - непрозрачность запросов для разработчиков и для оптимизатора. Первую проблему вы прекрасно проиллюстрировали на собственном примере. И это в самом упрощенном варианте. Вы попробуйте написать селект, использующий разные типы данных. Не знаю о каких модели вы говорите. Бред в качестве недостатков реляционных СУБД (точнее в качестве примущества cache над реляционными СУБД) назвал неумение ими компактно хранить разреженные массивы. И предложил некий тест, который по его мнению, показывал это неумение. Я своим примером показал, что вопрос компактного хранения - это исключительно вопрос умения спроектировать базу данных. И на oracle "бредовский тест" может быть реализован ровно с теми же параметрами по занимаемому объему, что и на cache. Вы же почему-то в ответ на это решили обсуждать недостатки какой-то там модели. И при этом, по-всей видимости, занесли меня в сторонники этой самой модели. Давайте отделим мух от котлет. Если вам интересно обсуждать некую модель - пожалуйста, но вряд ли я буду вашим оппонентом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 11:23 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Выбегалло Вы попробуйте написать селект, использующий разные типы данных. Но проблема же здесь в этом случае не в селекте, а в выборе изначально неверного типа для ColValue. Он должен быть в нашем случае символьный - VARCHAR2 и тогда мы делаем запрос с помощью преобразования типов. Я изменил тип колонки ColValue на VARCHAR2(100), дополнил Ваш пример следующими тестовыми данными Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. и вот Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. TO_DATE сделано только для демонстрации явного преобразования типов. В случае можно конечно проверять дату просто как строку ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 11:35 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
softwarer БредТолько как-то грустно, что даже не стремитесь к пониманию предмета Вашего труда. Здравствуйте, Андрей Леонидович. Ну не ерничайте, Виталий Алексеевич. Прокололись на элементарном непонимании логического уровня, и опять завели песню о чале. Я, как бы Вам этого не хотелось (не совсем, правда, понятно для чего этого так хочется), - не он. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 17:27 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Выбегалло Bogdanov Andrey БредА я просто сравниваю, потому что раздел так называется. Я тоже не ругаю и не хвалю, а привожу результат. Еще раз: у этих колонок могут быть свои ограничения целостности, имена (смысл). Именно Ваш способ и делает тест бессмысленным. Результат Oracle: 1.11 Гб. Я его не ругаю, и не хвалю. Мне как раз кажется, что ваше сравнение совершенно бессмысленно. Вы взяли некий объект в Oracle и некий объект в Cache почему-то решили, что это однородные объекты и решили сравнить их размер. С таким же успехом можно сказать, что у Эйфелевой башни 300 метров, а у великой китайской стены - 6 миллионов метров (могу ошибиться с цифрами). Это сравнение ни о чем. Вот если вы возьмете некую приклдадную задачу, то можно сравнивать ее реализации. Вы можете сказать, что взяли вот задачу хранения разреженных массивов (осталось только строго формализовать ее) и сравнили. Но заметим, что при этом вы сравнили не СУБД, а две ВАШИХ реализации этой задачи. Как только я предложил другую реализацию вы начали навешивать дополнительные требования и ограничения. Ну дело таки в том, что реализация "разряженных массивов" в Oracle таки хромает. Занимается масса дискового пространства, которое никак не используется. Хуже того - при выборке приходится все это пустое место считывать с диска и кидать в память, при записи - сливать на диск. Имеете что возразить ? При прочих равных, СУБД с более компактным хранением данных имеет преимущество в скорости выполнения запросов. Не говоря уже о стоимости дисков. Проблема коллеги ЧАЛа в том, что он свято убежден в порочности реляционной ИДЕИ. Вот тут-то Sybase IQ и вставляет ему перо в ж... в одно место. Оказывается, можно хранить "разряженные массивы" экономно - и при этом оставаться реляционной СУБД. Все зависит от внутренней реализации. Пусть чал летит себе с Вашим пером в ж... Но если реляционные ИДЕЯ (С) порочна, то как ее может спасти "экономное хранение разреженных массивов" ??? Кстати, перечитал высказавания чала (ну может не все), и не нашел ничего про "разреженные массивы", которые невозможно реализовать в рамках "реляционной идеи". После Ваших пламенных и весьма нервных выступлений я уже начал подумывать о том, что не все в порядке с реляционной ИДЕЕЙ (С). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 17:37 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Выбегалло Мне как-то глубоко покласть на ваше мнение о моей (без)грамотности, удивляет только, с какого перепугу вы решили, что оракловские расширения должны быть известны разработчикам других платформ. зашибись позиция, давайте теперь всех заставим ориентироватся на субд которые сумарно занимают 2% рынка :) аналитические функции прописаны в стандарте ANSI SQL и поддерживаются любой нормальной субд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 17:46 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andrey Выбегаллоничего специфически ораклового в задаче нет, и решается она вполне замечательно средствами стандартного SQL , причем двумя вариантами - с JOIN и с GROUP BY. Не знаю что лично вы обсуждали, а я обсуждал недостатки данной модели, которые на всех СУБД одинаковы - непрозрачность запросов для разработчиков и для оптимизатора. Первую проблему вы прекрасно проиллюстрировали на собственном примере. И это в самом упрощенном варианте. Вы попробуйте написать селект, использующий разные типы данных. Не знаю о каких модели вы говорите. Бред в качестве недостатков реляционных СУБД (точнее в качестве примущества cache над реляционными СУБД) назвал неумение ими компактно хранить разреженные массивы. И предложил некий тест, который по его мнению, показывал это неумение. Я своим примером показал, что вопрос компактного хранения - это исключительно вопрос умения спроектировать базу данных. И на oracle "бредовский тест" может быть реализован ровно с теми же параметрами по занимаемому объему, что и на cache. Вы же почему-то в ответ на это решили обсуждать недостатки какой-то там модели. И при этом, по-всей видимости, занесли меня в сторонники этой самой модели. Давайте отделим мух от котлет. Если вам интересно обсуждать некую модель - пожалуйста, но вряд ли я буду вашим оппонентом. Не вводите людей в заблуждение. "Бредовский тест" на Oracle дает 1.11 Гб. Поэтому, наверное, Вы заменили его собственным тестом, умышленно изменив логическую модель. Вы использовали модель, о которой я сказал еще до Вашего сообщения, и которую можно иногда ВЫНУЖДЕННО использовать, получая очень неудобную для прямых запросов структуру. Хотя бы привели пример, когда структуру из Вашего теста УДОБНО И ПРАВИЛЬНО использовать, заменяя ей нормальную структуру данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 17:47 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
SergSuper pavelvp Если Вы напряжёте свою память, Андрей Леонидович, то наверняка вспомните... ЧАЛ из Латвии писал, а этот IP московский Да и стилистика немного другая. Я всё-таки склоняюсь что не онпростите меня люди, был не прав, всё-таки это он ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 18:10 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
SergSuper пишет: > ЧАЛ из Латвии писал, а этот IP московский > Да и стилистика немного другая. Я всё-таки склоняюсь что не он > > простите меня люди, был не прав, всё-таки это он Дайте пож. ссылку на Чала. На настоящего. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 18:43 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Привет, SergSuper! Ты пишешь: SergSuperS> простите меня люди, был не прав, всё-таки это оноб чем я и говорил... -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 19:01 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Yo.! Выбегалло Мне как-то глубоко покласть на ваше мнение о моей (без)грамотности, удивляет только, с какого перепугу вы решили, что оракловские расширения должны быть известны разработчикам других платформ. зашибись позиция, давайте теперь всех заставим ориентироватся на субд которые сумарно занимают 2% рынка :) аналитические функции прописаны в стандарте ANSI SQL и поддерживаются любой нормальной субд. Да вы наперсточник, батенька. 1. DECODE - в стандарте не прописано. 2. Oracle не занимает 98% рынка. 3. С какой стати DECODE должно быть известно разработчикам других платформ ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 19:09 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
MasterZiv SergSuper пишет: > ЧАЛ из Латвии писал, а этот IP московский > Да и стилистика немного другая. Я всё-таки склоняюсь что не он > > простите меня люди, был не прав, всё-таки это он Дайте пож. ссылку на Чала. На настоящего. Posted via ActualForum NNTP Server 1.4 Вот тут вот самый классический ЧАЛ, тема почти умирала и 14-й странице он появляется вот тут еще есть ( но сначала всё по первой ссылке прочитайте ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 19:09 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
dmidek Выбегалло Вы попробуйте написать селект, использующий разные типы данных. Но проблема же здесь в этом случае не в селекте, а в выборе изначально неверного типа для ColValue. Он должен быть в нашем случае символьный - VARCHAR2 и тогда мы делаем запрос с помощью преобразования типов. Я изменил тип колонки ColValue на VARCHAR2(100), дополнил Ваш пример следующими тестовыми данными Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. и вот Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. TO_DATE сделано только для демонстрации явного преобразования типов. В случае можно конечно проверять дату просто как строку ... Мало того, что разработчик вместо имен колонок должен использовать их номера - так ему еще и помнить их типы требуется. Зашибись простота. Кстати, подумал я про сворачивание этого всего полета архитекторной мысли во view для нормального использования - тоже проблемы видны. Много дурной работы серверу придется делать, если в таблице, скажем, 30 колонок, а интересуют всего 2-3-5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 19:18 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Выбегалло dmidek Выбегалло Вы попробуйте написать селект, использующий разные типы данных. Но проблема же здесь в этом случае не в селекте, а в выборе изначально неверного типа для ColValue. Он должен быть в нашем случае символьный - VARCHAR2 и тогда мы делаем запрос с помощью преобразования типов. Я изменил тип колонки ColValue на VARCHAR2(100), дополнил Ваш пример следующими тестовыми данными Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. и вот Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. TO_DATE сделано только для демонстрации явного преобразования типов. В случае можно конечно проверять дату просто как строку ... Мало того, что разработчик вместо имен колонок должен использовать их номера - так ему еще и помнить их типы требуется. Зашибись простота. Кстати, подумал я про сворачивание этого всего полета архитекторной мысли во view для нормального использования - тоже проблемы видны. Много дурной работы серверу придется делать, если в таблице, скажем, 30 колонок, а интересуют всего 2-3-5. Почему он должен помнить номера ? Мы можем если хотим ввести колонку ColName и работать с ней точно так же вместо ColId. Вы стучитесь в открытые двери . Конечно ни один нормальный разработчик не будет хранить данные в такой структуре . Конечно, это неудобно. Вы предложили решить эту задачу в SQL - вот решение. Теперь Вы говорите, что оно сложно выглядит... Повторюсь - это частный случай задачи транспонирования строк в столбцы, довольно популярной при развертке таблицы по значениям и даже располагающейся в FAQ Oracle на сайте (пример разбивки данных по месяцам) Она на мой взгляд не является сложной. Я не вижу в ней технических сложностей. Только некоторая точность и аккуратность. Но естественно в своей системе мне и в страшном сне не приснилось бы хранить данные в таком виде. К чему ? Мне задача была интересна as is , именно как задача на написание запроса... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 19:28 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Выбегалло Да вы наперсточник, батенька. 1. DECODE - в стандарте не прописано. так кто говоришь наперсточник ? :) Выбегалло это на каком диалекте ? Ни Informix, ни Sybase IQ не понимают "select over", "partition by". Нельзя ли ограничиться стандартом ? Выбегалло 3. С какой стати DECODE должно быть известно разработчикам других платформ ? а с какими субд вы имели дело ? DECODE есть и в db2 и в Informix , есть в клонах Postgres (Enterpisedb), наверника в mysql maxdb ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 19:36 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
SergSuper пишет: > Вот тут вот </topic/9021> > самый классический ЧАЛ, тема почти умирала и 14-й странице он появляется Даа, классно ! Супермегаотжиг кашесрач на 89 страницах ! Это ж монументальное полотно просто получилось ! >вот тут > </topic/282117&pg=7#2591611> > еще есть ( но сначала всё по первой ссылке прочитайте ) Надеюсь это была шутка... Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 19:40 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
SergSuper MasterZiv SergSuper пишет: > ЧАЛ из Латвии писал, а этот IP московский > Да и стилистика немного другая. Я всё-таки склоняюсь что не он > > простите меня люди, был не прав, всё-таки это он Дайте пож. ссылку на Чала. На настоящего. Posted via ActualForum NNTP Server 1.4 Вот тут вот самый классический ЧАЛ, тема почти умирала и 14-й странице он появляется вот тут еще есть ( но сначала всё по первой ссылке прочитайте ) Да, настоящий дибил. Спасибо за информацию - я в других темах смотрел, когда он как зарегистрированный был. Но там тоже не лучше. А поначалу не выглядели его "мысли", как явная глупость. А теперь вот по-внимательнее почитал... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 19:45 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Бред пишет: > Да, настоящий дибил. Спасибо за информацию - я в других темах смотрел, > когда он как зарегистрированный был. Но там тоже не лучше. А поначалу не > выглядели его "мысли", как явная глупость. А теперь вот по-внимательнее Ага, а здесь ЧАЛ - это Бред, да ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 20:01 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Yo.! Выбегалло Да вы наперсточник, батенька. 1. DECODE - в стандарте не прописано. так кто говоришь наперсточник ? :) Выбегалло это на каком диалекте ? Ни Informix, ни Sybase IQ не понимают "select over", "partition by". Нельзя ли ограничиться стандартом ? Выбегалло 3. С какой стати DECODE должно быть известно разработчикам других платформ ? а с какими субд вы имели дело ? DECODE есть и в db2 и в Informix , есть в клонах Postgres (Enterpisedb), наверника в mysql maxdb ... Я думаю, Вы сами сможете назвать СУБД, которая имеет больше двух процентов рынка и не поддерживает DECODE?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 20:16 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
drev Я думаю, Вы сами сможете назвать СУБД, которая имеет больше двух процентов рынка и не поддерживает DECODE?) у вас decode - аналитическая функция ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 20:41 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Yo.! Выбегалло Мне как-то глубоко покласть на ваше мнение о моей (без)грамотности, удивляет только, с какого перепугу вы решили, что оракловские расширения должны быть известны разработчикам других платформ. зашибись позиция, давайте теперь всех заставим ориентироватся на субд которые сумарно занимают 2% рынка :) аналитические функции прописаны в стандарте ANSI SQL и поддерживаются любой нормальной субд. Он имел ввиду, в основном, DECODE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 20:52 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Yo.! Выбегалло Да вы наперсточник, батенька. 1. DECODE - в стандарте не прописано. так кто говоришь наперсточник ? :) Выбегалло это на каком диалекте ? Ни Informix, ни Sybase IQ не понимают "select over", "partition by". Нельзя ли ограничиться стандартом ? И ? С каких пор они понимают SELECT OVER и PARTITION BY ? Нельзя ли ограничиться стандартом ? Yo.! Выбегалло 3. С какой стати DECODE должно быть известно разработчикам других платформ ? а с какими субд вы имели дело ? DECODE есть и в db2 и в Informix , есть в клонах Postgres (Enterpisedb), наверника в mysql maxdb ... Насколько я помню, вы у нас любитель MS SQL. Сколько процентов рынка занимают MS SQL 7 и 2000 ? Есть ли в них decode ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 21:13 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Выбегалло И ? С каких пор они понимают SELECT OVER и PARTITION BY ? Нельзя ли ограничиться стандартом ? ну Sybase IQ понимает с рождения (было бы странно если бы аналитическая субд не супортила анлитические запросы). а стандартом ограничется никак нельзя т.к. "SELECT OVER и PARTITION BY" описаны в стандарте ANSI SQL 2003. откройте ж наконец стандарт, и доку по informix и sybase iq, а то блин дожили - Yo! рассказывает апологетам, что есть и чего нет в их любимых субд. Выбегалло Насколько я помню, вы у нас любитель MS SQL. ага, в некотором роде .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 23:17 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
MasterZiv Бред пишет: > Да, настоящий дибил. Спасибо за информацию - я в других темах смотрел, > когда он как зарегистрированный был. Но там тоже не лучше. А поначалу не > выглядели его "мысли", как явная глупость. А теперь вот по-внимательнее Ага, а здесь ЧАЛ - это Бред, да ? Posted via ActualForum NNTP Server 1.4 Прочитали бы по ссылкам до конца - вопросов бы не было На этом эту тему замнём, и так уже этим разборками было загажено несколько топиков ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2007, 00:17 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Yo.! Выбегалло И ? С каких пор они понимают SELECT OVER и PARTITION BY ? Нельзя ли ограничиться стандартом ? ну Sybase IQ понимает с рождения (было бы странно если бы аналитическая субд не супортила анлитические запросы). Это вы его с прямым углом спутали. И было б странно, если аналитическая субд 1999 года выпуска, полученная из купленного в 95м. Expressway, от рождения понимала стандарт 2003 года. Yo.!а стандартом ограничется никак нельзя т.к. "SELECT OVER и PARTITION BY" описаны в стандарте ANSI SQL 2003. Осталось дожить до момента, когда стандарт 93 года все воплотят в полном объеме - как тока это случится, так сразу я брошусь модные фичи из стандарта 2003 использовать. Все ихние рюшечки и кружева, с бубенчиками и свистульками. А пока с задачей вполне JOIN и GROUP BY справляется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2007, 00:58 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
IBM DB2: при включенной компрессии указанная таблица (1000 х 1000000) занимает 30 Мб. Расположение единиц значения не имеет. тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2007, 18:15 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
khlIBM DB2: при включенной компрессии указанная таблица (1000 х 1000000) занимает 30 Мб. Расположение единиц значения не имеет. тут 1. Не Interbase, а Firebird 2. Там 100К строк а не 1М ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2007, 19:25 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
SergSuper MasterZiv Бред пишет: > Да, настоящий дибил. Спасибо за информацию - я в других темах смотрел, > когда он как зарегистрированный был. Но там тоже не лучше. А поначалу не > выглядели его "мысли", как явная глупость. А теперь вот по-внимательнее Ага, а здесь ЧАЛ - это Бред, да ? Posted via ActualForum NNTP Server 1.4 Прочитали бы по ссылкам до конца - вопросов бы не было На этом эту тему замнём, и так уже этим разборками было загажено несколько топиков Самое смешное, если автор этого сообщения и есть модератор !? И он удалил мое сообщение приблизительно с таким, вполне корректным, содержанием (при этом не удалив это свое сообщение!): Так Вы же и загаживаете разборками топики, потому что по существу обсуждаемых вопросов Вам никогда нечего сказать. А товарищ абсолютно прав. Здесь дибил, конечно, я. Потому что: SQL Server - 17.2 Гб Oracle ??? - 1.11 Гб Cache 5.2 - 17 Мб Я не сторонник Cache, а, скорее, поклонник Oracle, но дибил просто потому что вот такие цифры получились. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2007, 19:32 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
hvlad khlIBM DB2: при включенной компрессии указанная таблица (1000 х 1000000) занимает 30 Мб. Расположение единиц значения не имеет. тут 1. Не Interbase, а Firebird 2. Там 100К строк а не 1М Я не про IB/FB, а про DB2 фирмы IBM. Задача ставилась про таблицу в 1000 колонок с 1 млн. строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2007, 19:51 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
khl hvlad khlIBM DB2: при включенной компрессии указанная таблица (1000 х 1000000) занимает 30 Мб. Расположение единиц значения не имеет. тут 1. Не Interbase, а Firebird 2. Там 100К строк а не 1М Я не про IB/FB, а про DB2 фирмы IBM. Задача ставилась про таблицу в 1000 колонок с 1 млн. строк. А результат получен для 100K строк : --------- Пробовал ваш пример на 1000 int колонках и 100 000 строк ( в мегабайтах): COMPRESS | Y | N |---|---- COMPRESS SYSTEM DEFAULT |Y| 30 | 390 |N| 52| 781 ------ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2007, 20:34 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
khl hvlad khlIBM DB2: при включенной компрессии указанная таблица (1000 х 1000000) занимает 30 Мб. Расположение единиц значения не имеет. тут 1. Не Interbase, а Firebird 2. Там 100К строк а не 1М Я не про IB/FB, а про DB2 фирмы IBM. Задача ставилась про таблицу в 1000 колонок с 1 млн. строк.1. Где вы взяли данные Interbase ? 2. Внимательно перечитываем пост "Mark Barinstein" и пересчитываем нолики ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2007, 20:35 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
hvlad khl hvlad khlIBM DB2: при включенной компрессии указанная таблица (1000 х 1000000) занимает 30 Мб. Расположение единиц значения не имеет. тут 1. Не Interbase, а Firebird 2. Там 100К строк а не 1М Я не про IB/FB, а про DB2 фирмы IBM. Задача ставилась про таблицу в 1000 колонок с 1 млн. строк.1. Где вы взяли данные Interbase ? 2. Внимательно перечитываем пост "Mark Barinstein" и пересчитываем нолики Про FB я взял данные на третьей странице этой темы. Про нолики - в самом деле не хватает. Щас уточним, может он просто опечатался, т.к. я выше писал именно про 1М строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2007, 21:18 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Да, судя по цифрам там для 100k строк. Значит для 1М - 300 Мб. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2007, 21:28 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
khlПро FB я взял данные на третьей странице этой темы.Вот и не нужно тогда ничего писать про Interbase ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2007, 21:45 |
|
||
|
Разработка СУБД
|
|||
|---|---|---|---|
|
#18+
Бред... Здесь дибил, конечно, я. Потому что: SQL Server - 17.2 Гб Oracle ??? - 1.11 Гб Cache 5.2 - 17 Мб Я не сторонник Cache, а, скорее, поклонник Oracle, но дибил просто потому что вот такие цифры получились. Вранье... Сплошное вранье!!! Только что проверил: Cache 5.2 - 15 G !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2007, 21:57 |
|
||
|
|

start [/forum/topic.php?all=1&fid=35&tid=1553279]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
288ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 388ms |

| 0 / 0 |
