С кем уживаются скалярии
На сегодняшний день выбор аквариумных рыбок очень большой. Все зависит от ваших предпочтений и финансовых возможностей. Но для начинающего аквариумиста необходимо выбирать неприхотливых рыб, со спокойным характером и хорошими отношениями с другими обитателями. Очень многие новички любят скалярий за их красоту и грацию в сочетании с неторопливостью. Однако для содержания в аквариуме это не самая простая рыбка. Важным фактором является знание — с кем хорошо живут скалярии.
Быстрый переход по статье
Характеристика вида
Скалярии – это очень распространенный вид аквариумных рыбок, относящихся к семейству цихловых. Практически у каждого любителя — аквариумиста можно увидеть этих пестрых, очень грациозных рыб. Родиной скалярий является Южная Америка, а именно спокойные, зачастую стоячие водоемы с густой растительностью.
На вид это достаточно крупные рыбы, дикие особи имеют довольно спокойную окраску серебристого цвета с черными полосками.
Но большим достоинством этого вида рыб является, то, что они достаточно успешно и многогранно видоизменяются в процессе селекции. Так появились леопардовые, бриллиантовые, зебровые, мраморные, золотистые и многие другие виды этих рыбок. Размер их весьма крупный, около 15 сантиметров, но могут быть и больше. Продолжительность жизни скалярий до 10 лет, но при хорошем уходе этот период времени может значительно возрасти.
Некоторые особенности
К корму они довольно неприхотливы, питаются всеми его разновидностями. Лучше выбирать корм, который не тонет, так как скалярии в основном плавают у поверхности, а со дна его собирать не будут. Кормить нужно 2-3 раза в день. Ни в коем случае не перекармливать, так как они склонны к ожирению. Это может привести к невозможности размножения. Полезно даже раз в неделю устраивать им разгрузочный день.
Еще одним несомненным достоинством является доступная цена на скалярий, их относительная неприхотливость в содержании, высокая вероятность размножения. Эти сказочно красивые рыбки охотно уживаются с большим количеством других представителей подводного мира.
Следует учитывать, что скалярия – рыба хищная, поэтому почти всех мелких рыбешек, подселенных к ней, будет воспринимать как пищу. А для более крупных рыб семейства хищников сама скалярия может стать объектом охоты. Особенно если учитывать ее медлительность при сочетании со спокойным характером. Еще один момент – подселять соседей к этим рыбкам лучше с молодого возраста, если они вместе вырастут, то смогут мирно сосуществовать на протяжении всей жизни.
Перечень хороших соседей
Давайте рассмотрим, какие же рыбки могут жить вместе со скаляриями в аквариуме?
- Сомики.С этими спокойными и медлительными рыбами уживаются практически все.
Сомики – придонные обитатели, скалярии просто не будут их замечать, так как аквариумное дно их абсолютно не интересует. Эти рыбки прекрасно живут вместе в аквариуме.
- Цихлиды.Хоть они относятся к одному виду, все же не всегда получается идеальный симбиоз. Казалось бы, родственники, что им делить? Но все дело в том, что в отличие от скалярий, другие представители более шустрые да более агрессивные. Чаще всего драки происходят из-за места у кормушки. Высока вероятность некого противостояния более сильных рыбок из разных стай в аквариуме.
- Барбусы.Очень часто советуют подселять именно барбусов. Это вполне оправдано, они прекрасно живут вместе. Но есть несколько моментов: темперамент барбусов значительно отличается, они более активны, могут запросто оставить скалярий без обеда. Также из-за своей активности эти рыбки могут обижать более спокойных цихлид, а иногда даже умудряются откусывать им плавники. Поэтому при подселении нужно внимательно понаблюдать за их поведением.
- Гурами.Эти рыбки тоже достаточно крупных размеров и вместе со скаляриями создают красивую композицию в общем аквариуме. Но совместно селить их нужно с малькового возраста, тогда проблем не должно возникнуть. В противном случае можно не досчитаться представителей обоих видов.
- Данио.Есть мнение, что данио легко могут сосуществовать со скаляриями. Да, возможно. Но не исключено, что при отсутствии света скалярии могут запросто открыть на них охоту с целью полакомиться. Хотя данио тоже не такие уж просты. Если такое случается, то у них вырабатывается рефлекс, а с наступлением ночи рыбы в аквариуме прячутся ближе ко дну.
Посмотрите как отлично уживаются вместе розовые скалярии и данио.
- Пецилии.Отлично живут в одном аквариуме. Скалярии чаще всего просто не замечают представителей данного вида.
Поэтому эти рыбы будут прекрасными соседями.
- Радужницы.Вполне совместимы, при учете, если будут расти вместе со скаляриями с детства. Хотя иногда, можно недосчитаться парочки радужниц в аквариуме.
- Гуппи.С разновидностями гуппи скалярии могут ужиться, а могут — нет. Если их селили вместе еще мальками, то, скорее всего, им будет вполне комфортно. Но новорождённых мальков гуппи скалярии, конечно же, съедят. Но, стоит помнить, что этим же грешат и взрослые рыбки гуппи, поэтому это не является показателем для раздельного сосуществования в аквариуме.
- Неоны.Могут жить вместе, так как неоны обитают в основном на дне, для цихлид они незаметны, но если часто попадаются на глаза, то вполне могут попасть на зуб этим хищникам, как очень маленькие по размеру рыбки.
- Лабео и тетры.Считают, что союз вполне возможен, если эти рыбешки выросли вместе.
- Псевдотрофеусы.На практике показали неплохую уживчивость со скаляриями, но все же были случаи, когда псевдотофеусы грызли плавники другим рыбам.
Вероятность совместимости
В качестве соседей для скалярий не подойдут такие рыбки, как золотые рыбки, пираньи, дискусы, астронотусы.
Вообще, невозможно заявлять об идеальной совместимости с каким-то конкретным видом. Сложно дать гарантию на то, с какими рыбками будет хорошо жить тот или иной вид. У каждой рыбки свой характер, темперамент, манеры поведения. Поэтому невозможно предугадать, как они поведут себя в той или иной ситуации. Приобретая соседей к уже живущим особям для вашего аквариума, лучше заранее договоритесь с магазином о возможном возврате при возникновении несовместимости.
Внимательно наблюдайте в течение суток за поведением рыб. На всякий случай приготовьте место в дополнительном аквариуме или емкости с водой, чтобы вовремя разнять драчунов.
Посмотрите на общий аквариум со скалярией.
Вместо заключения
Немаловажными являются условия содержания. Если аквариум просторный, в нем достаточно укромных местечек для более мелких рыб, а кормятся рыбки регулярно и сбалансировано, то причин для агрессии становится меньше, каждый вид просто живет своей жизнью. Постарайтесь создать максимально благоприятные условия для обитателей вашего аквариума. В таком случае они будут радовать вас, положительно воздействовать на здоровье и эмоциональное состояние, предотвратят появление неврозов и депрессий, а также помогут развиваться вашим детям.
С кем уживаются скалярии в аквариуме или несовместимы совсем
Angelfish scalar by Peter Vráb on 500px.comПредлагаю вспомнить известные факты про содержание скалярий, прежде чем рассуждать об их совместимости с другими рыбками.
Это облегчит понимание вопроса уживаемости скалярий с другими рыбками в одном аквариуме.
Если я забуду упомянуть ту или иную рыбку, вы без труда определите ее совместимость со скаляриями на основе приведенных данных.
Итак.
Что известно про скалярий?
- Они относятся к хищным цихлидам
- Это территориальная рыбка
- У скалярии длинные плавники
- Они любят кислую мягкую воду
- Скалярии медлительны
- Это тропическая рыбка
Совместимость скалярий с другими рыбками в аквариуме
Новички опрометчиво считают скалярий мирными рыбками, не зная про хищный нрав и поведение.
Когда размеры скалярий превышают размеры других рыбок в аквариуме, скалярии могут открыть сезон охоты на более мелких рыбок.
Учитывая крупные размеры скалярий, вы рискуете не досчитаться какого-то числа мелких рыбок.
Подбирая рыбок в аквариум со скаляриями, отдавайте предпочтение рыбкам средних размеров.
Скалярии разбиваются на пары и занимают какой-либо угол аквариума, изгоняя других рыбок.
Это обстоятельство не позволяет скаляриям уживаться с другими территориальными рыбками, вроде некоторых видов гурами и цихлид.
Территориальность скалярий ярко выражается во время нереста, когда скалярии охраняют кладку икры и любая рыбка сильно рискует, оказавшись рядом с гнездом скалярий.
Длинные плавники вуалевых форм скалярий притягивают аквариумных хулиганов, вроде барбусов и петушков.
Барбусы и петушки любят обдирать длинные плавники другим рыбкам, и медлительные скалярии могут пострадать.
Скалярии это тропические рыбки, которых содержат при температуре 27-28 градусов Цельсия.
Это делает невозможным совместное содержание скалярий с холодноводными рыбками, вроде золотых рыбок.
Скалярии требовательны к чистоте воды.
Их нельзя содержать с рыбками, которые активно роют грунт и выдирают растения.
Любовь скалярий к мягкой подкисленной воде не позволяет содержать их с рыбками, предпочитающими жесткую воду со щелочной реакцией.
Из-за этого скалярий нельзя содержать вместе с американскими и африканскими цихлидами, учитывая и хищный нрав последних.
Я приведу два списка рыбок, с которыми скалярии уживаются и с которыми скалярии несовместимы полностью.
Подбирая новых рыбок в аквариум со скаляриями учитывайте, что:
- Рыбки должны обладать средними размерами
- Они должны быть миролюбивы
- Они не выдергивают растения и не роют грунт
- Они могут жить в кислой и мягкой воде
- Рыбки не должны быть территориальными
- Им подходит температурный диапазон 27-28 градусов Цельсия
Какие рыбки уживаются со скаляриями
Список рыбок, которые полностью уживаются в одном аквариуме со скаляриями, выглядит так:
- Ампулярия
- Анциструс
- Апистограмма
- Боции
- Гурами
- Данио
- Коридорасы
- Лабео
- Лялиус
- Меченосец
- Минор
- Моллинезии
- Неоны
- Пецилия
- Радужницы
- Расбора
- Скалярии
- Тернеция
- Тетры
Какие рыбки несовместимы со скаляриями полностью
Следующие рыбки совсем не уживаются со скаляриями. Я не рекомендую проверять это утверждение лично.
- Акары
- Астронотус
- Африканские цихлиды
- Золотые рыбки
- Карпы кои
- Красный попугай
Ограниченно совместимые
Эти рыбки ограниченно совместимы со скаляриями. Они могут ужиться, но вероятность эксцессов высока.
- Петушки
- Макроподы
- Гуппи
- Дискусы
- Барбусы
Обратите внимание, условно совместимые рыбки либо обладают сопоставимыми размерами со скаляриями, либо отличаются драчливым характером.
Из этого ряда выбиваются гуппи, не обладающие драчливым характером или большими размерами.
Почему?
Гуппи это мелкая рыбка, и проблема совместимости гуппи со скаляриями заключается в охоте скалярий на гуппи.
Вопросы совместимости аквариумных рыбок немыслимы без наблюдения за ними.
Всегда может найтись рыбка, которая проигнорирует таблицы совместимости и вашим скаляриям не поздоровится.
Скалярии: совместимость с другими рыбками
Скалярия является одной из самых красивых и неприхотливых рыбок. Нередко они занимают главное место в аквариуме. По-другому их называют рыбки-ангелы, благодаря элегантности и красивым плавникам, похожим на ангельские крылья. Однако прежде чем приобрести их в аквариум, важно знать, с кем соседство считается для них комфортным, а кого категорически нельзя держать в одном аквариуме.
На что обратить внимание при выборе «соседей»?
Несмотря на то, что этот вид считается мирным и спокойным, нужно помнить, что они принадлежат к семейству цихлиды, а значит им присущ инстинкт хищника. Из этого следует, что не любая аквариумная рыбка подойдет для скалярии по совместимости с другими рыбками. Например, к ним нельзя подселять маленьких рыбок, поскольку они их с легкостью съедят. С другой стороны, крупные породы рыб, проявляющие агрессию к другим, станут сами нападать.
Главное правило, которое нужно помнить при совместимости скалярий с другими рыбами: со многими они способны ужиться и мирно сосуществовать, если растут и взрослеют вместе с рождения. Тогда, даже став взрослыми, они будут легко узнавать своих соседей и отличать от новичков.
Посмотрите на общий аквариум со скаляриями.
Кто станет хорошим соседом?
При выборе этих представителей можно не беспокоиться о том, что кому-то из аквариумных рыбок это сожительство принесет вред или гибель. Перечисленные виды уживаются в аквамире со скаляриями совместимо.
- Сомики коридорасы. Благодаря медлительности и спокойному нраву, сомы способны сосуществовать в общем аквариуме практически со всеми представителями рыбок. Так как основную часть жизни сомики проводят на дне, «ангелы» просто не будет их замечать, поэтому они бы жили в спокойствии и мире.
- Петушки. Они являются хорошими уживутся с небольшими особями. Чаще подвержены конфликтам между собой, чем с другими видами. Но во время нереста скалярия становится более агрессивной, поэтому на этот период петушков рекомендуется переселять или обеспечивать им места для укрытия.
- Данио. Станут хорошими сожителями, если они росли вместе, как меченосцы со скаляриями. Если же подселить их к уже взрослым особям, то вторые воспримут первых, как корм, и начнут на них охотиться. Оставшиеся в живых рыбки также не смогут существовать спокойно, скалярия не упустит возможности напасть на них, особенно ночью.
- Пецилии и моллинезии. Отлично уживаются скалярии с ними, так как последние просто не замечают их появления, а значит, не проявляют агрессии.
- Радужницы. Хорошо уживается, если они растут вместе. Но даже в этом случае скаляриям свойственно охотиться на радужниц, обладающих небольшими размерами, пробуждающими в них инстинкт хищника.
- Скалярии и неоны. Хотя неоны обитают на дне и редко сталкиваются, иногда проявляют свои охотничьи инстинкты. Особенно нападениям на неончиков подвергнуты новички, которых подселили к уже взрослым особям.
Кроме того, хорошими соседями для скалярии и гурами. Они являются крупными рыбками и гармонично смотрятся в одном аквамире. Но и здесь нужно помнить о совместном взрослении аквариумных рыбок. В противном случае есть риск того, что они будут сильно конфликтовать и охотиться на друг друга. Многие держатели аквариумов советуют таких соседей, как тетры и лабео. Если они выросли вместе, то их сосуществование будет спокойным и комфортным.
Аквариумные рыбки – псевдотрофеусы – неплохо уживаются, однако нередко случаются ситуации, когда псевдотрофеусы проявляют чрезмерную агрессию и грызут плавники соседей. Особенно это происходит при несистематическом кормлении. Поэтому при подселении нужно следить за поведением рыбок.
Кого не рекомендуется подселять?
Известны представители аквариумных рыбок, с которыми данный вид не сможет ужиться. Кто же является крайне нежелательным соседом?
- Барбусы. Хотя во многих источниках имеется информация, что барбусы хорошо могут уживаться, это совершенно не так. Нужно помнить, что барбус – рыбка достаточно активная и недружелюбная, она может постоянно хватать скалярию за плавники, гонять ее по аквариуму, подвергая стрессу.
Часто барбусы не подпускают их к кормушке, что, безусловно, плохо для рыб.
- Африканские и южноамериканские виды цихлид. Несмотря на их достаточно близкое родство, скалярия является более спокойной и миролюбивой аквариумной рыбешкой. Есть большая вероятность, что данные скалярии дерутся, станут проявлять агрессию и поведение хищника. Поэтому с ними будут чувствовать постоянный дискомфорт и беспокойство.
- Золотые рыбки. Совершенно несовместимый вид. Во-первых, они отличаются характером, активные «ангелы» будут охотиться на спокойных золотых рыбок, драться и кусаться за плавники. А во-вторых, им необходимы разные условия содержания. Так, скаляриям необходима теплая вода, в то время как золотые рыбки живут в прохладной воде. Также они сильно и быстро загрязняют воду, а другим необходимо жить в чистоте.
- Скалярии и гуппи. Конечно, можно попробовать поселить этих рыбок вместе с самого рождения. Однако, повзрослев, скалярии начнут охотиться за гуппи, так как ее маленький размер и яркий окрас могут разбудить в них инстинкт хищника.
Если даете прожить им совместно, то в результате вы рискуете недосчитаться нескольких, а – то и всех рыбок гуппи.
- Астронотусы. Астронотусы очень агрессивны и кровожадны, поэтому они могу ужиться только с представителями своего вида. Попробуйте поселить их вместе с крупными рыбами- скаляриями, но сделать это нужно с самого рождения рыбок.
- Тернеции. Несмотря на одинаковые условия существования, эти рыбки могут пострадать. Они обладают маленькими размерами, а значит, будут восприниматься ими, как живой корм.
- Дискусы и пираньи. Эти рыбы не станут хорошими соседями, так как им свойственно проявлять агрессивность и поведение хищника.
Конечно, нельзя сказать точно, какие особи имеют идеальную совместимость скалярий, с какими – станут врагами и почему дерутся скалярии. Нужно учитывать, что каждая аквариумная рыбка обладает темпераментом и манерой поведения, поэтому трудно предусмотреть, как она поведет себя в той или иной ситуации. Важно помнить, что хорошие условия существования способны уменьшить конфликтность и агрессивность рыбок. Регулярно, сбалансировано кормите рыб, выберите большой, просторный аквариум, обеспечьте в нем места, в которых маленькие особи могут прятаться от крупных соседей, и тогда аквариумные рыбешки станут жить своей жизнью, не притесняя сожителей. Благодаря уходу и заботе, друзья в аквамире станут спокойнее и миролюбивее. Безусловно в первую очередь это принесет радость, подарит эмоциональное удовлетворение и положительные эмоции Вам и семье.
Посмотрите как ведут себя скалярии с другими рыбками.
Скалярии совместимость с другими рыбками
Скалярии: содержание, совместимость, уход, размножение, виды, фото-видео обзор
СКАЛЯРИИ содержание, совместимость, уход, размножение, виды, фото-видео обзор На мой взгляд Скалярии (Pterophyllum scalare) являются одними из самых красивых аквариумных рыбок.
Эти южно-американские цихлиды просто завораживают своей элегантностью и красотой парусных плавников, которые подобно крыльям ангела поддерживают её в мерной невесомости. Собственно не даром зарубежном этих рыбок называют Ангелами.
Их манерность и родственность с элитными Дискусами придают присущий только им аристократический лоск. Этих аквариумных рыбок аквариумисты знают уже более 100 лет и за это время они заслужили признание и уважение. Помимо перечисленных достоинств скалярии обладают хорошо развитым интеллектом, не прихотливы в содержании и являются заботливыми родителями.
Отряд, семейство: Окунеобразные (Perciformes), цихловые, цихлиды (Cichlidae).
Комфортная температура воды: 22-27° С.
«Кислотность» Ph: 6-7,5.
Жесткость dH: до 10° .
Агрессивность: не агрессивны 30%.
Сложность содержания: легкая.

Совместимость скалярий: хотя скалярии и являются цихлидами, но не агрессивными.
Благосклонно относятся даже к маленьким, мирным рыбкам и даже к живородкам. В качестве соседей можно порекомендовать: красных меченосцев (отлично смотрятся с черными скляриями), тернеций и другие тетры, данио, все сомы, гурами и лялиусы, попугайчики и апистограммы, другие не агрессивные цихлиды.
Не совместимы с: неонами, гуппи (их рано или поздно ночью съедят), золотыми рыбками (они хрюшки, у них разный режим кормления, золотые рыбки нервные и скалярии их загоняют и общипают), дискусы тоже хоть и родственники, но на мой взгляд не лучшие соседи – дискусы дорогие, любят теплую воду, они вырастают в рыб большого размера, капризны. В общем я за то, чтобы дискусов держать отдельно в видовом аквариуме. Смотрите статью — совместимость аквариумных рыбок.
Сколько живут: скалярия является аквариумным долгожителем и может прожить более 10 лет. Узнать сколько живут другие рыбы можно ЗДЕСЬ!
Минимальный объем аквариума для скалярий
Фото икра скалярии
Фото личинки скалярии
Фото мальки, молодь скалярии
Красивое видео со скаляриями
Подборка красивых фото со скаляриями
fanfishka. ru>
Требования к уходу и условиям содержания скалярии
Кормление и рацион скалярий
Рыбки всеядны и к корму абсолютно не прихотливы. С удовольствием поедают сухие, живые корма и заменители. Как и многие аквариумные обитатели скалярии любят живой корм: мотыля, артемию, коретку, циклопа, дафнию. Корм скаляриями берется с поверхности воды и в ее толще, рыбки не брезгуют пройтись по дну собрав остатки корма.
У скалярий есть особенность — они могут отказываться от еды на протяжении до 2-х недель. Так что если Ваша скалярия не ест – ничего страшного в этом нет.
Кормление аквариумных рыбок должно быть правильным: сбалансированным, разнообразным. Это фундаментальное правило является залогом успешного содержания любых рыбок, будь-то гуппи или астронотусы. Статья «Как и сколько кормить аквариумных рыбок» подробно рассказывает об этом, в ней изложены основные принципы рациона питания и режима кормления рыбок.
В данной статье отметим самое главное – кормление рыб не должно быть монотонным, в рацион питания должны входить как сухие корма, так и живые. Кроме того, нужно учитывать гастрономические предпочтения той или иной рыбки и в зависимости от этого включать в ее рацион корма либо с наибольшим содержанием белка или наоборот с растительными ингредиентами.
Популярными и ходовыми кормами для рыбок, конечно же, являются сухие корма. Например, всечасно и повсеместно можно встретить на аквариумных прилавках корма компании «Tetra» — лидера Российского рынка, собственно и ассортимент кормов данной компании поражает. В «гастрономическом арсенале» Tetra входят как индивидуальные корма для определенного вида рыбок: для золотых рыбок, для цихлид, для лорикариевых, гуппи, лабиринтовых, арован, дискусов и т.д. Так же, компанией Tetra разработаны, специализированные корма, например, для усиления окраса, витаминизированные или для кормления мальков. Подробную информацию о всех кормах Tetra, Вы можете узнать на официальном сайте компании — здесь.
Следует отметить, что при покупке любого сухого корма, Вы должны обращать внимание на дату его изготовления и сроки хранения, старайтесь не покупать корма на развес, а также храните корма в закрытом состоянии – это поможет избежать развитее в нем патогенной флоры.
В природе скалярии обитают в северной части Южной Америке
Описание аквариумных рыбок скалярии
Тело круглое и очень сплющенное по бокам. Имеет сильно удлиненный спиной и анальный плавник, что придает рыбке очертания полумесяца. Естественная – природная окраска скалярий серебристая с черными поперечными полосками, однако в результате успешной селекции были получены разнообразные цветовые гаммы, например, мраморная скалярия, двухцветная, красная, черная, скалярия зебра и другие. Кроме того, выведена вуалевая форма скалярий – с еще более длинными плавниками. Скалярии – это крупные, размашистые рыбы, в длину могут достичь до 15 см., а в высоту и того пуще до 25 см.
История скалярий
Латинское название Pterophyllum дал скаляриям известный австрийский зоолог И.Я. Хеккель в 1840г. и переводится оно как «pteron» — перо и «phyllon» лист, а вместе «крылатый лист».
До того как Хеккель дал название Pterophyllum, эта рыбка была уже неоднократно описана в 1823г. Мартином Генрихом Карл Лихтенштейном, который дал ей название Zeus scalaris. А в 1931 году рыбка была описана бароном Жорд Леопольдом Фредериком Багоберт Кювье. Назвал он ее Platax scalaris. Было у скалярий и рыночное наименование «Blattfische», переводится как рыба лист. Это название дал Г.Б. Саграцки, у которого впервые получилось довести этих рыбок из Риу-Негру в Германию.
Собственно под этим именем они впервые и очутились в Европе, однако такое название в последствии не прижилось. За рубежом скалярий зовут «Angelfishes» или просто «Angel», в Германии «Segelflosser», что переводится, как парус.В некоторых источниках, говориться что впервые скалярии оказались в Европе в 1909 году, однако это не так.

Первое успешное размножение скалярий в искусственных условиях произошло в 1914 году у аквариумиста из Гамбурга – И. Кванкару. Его успех лишь через год повторил аквариумист из США У.Л. Полинн. Стоит отметить, что на тот период секрет размножения держался в строжайшем секрете – уж очень ценна была скалярия. Однако, все тайное когда ни будь становиться явным. С 1920 года разведение скалярий приобретает массовость.
В России скалярии впервые размножились в 1928 году. Это произошло у нашего аквариумиста гр-на А. Смиронова — вечером он ушел в театр, а дома в аквариуме у него сильно разгорелась грелка. Температура воды поднялась в аквариуме до 32°С и скалярии начали сами по себе нереститься. В качестве нотки юмора, хочется сказать, что у русских все как всегда – на авось и абы как.

Но, на успешном искусственном размножении скалярий аквариумисты не остановились. Вторая половина двадцатого века была ознаменована неумолимой селекционной работой над скаляриями. В 1956 году была выведена вуалевая скалярия. В 1957 году в США введена эффектная – черная скалярия. В 1969 году, опять же американцем Ч. Ашем, была получена мраморная скалярия.
Виды и породы скалярий
Вот фото некоторых скалярий — Pterophyllum scalare
Разведение, размножение и половые признаки скалярий
Вот хорошее фото самца и самки скалярии
Скалярии — содержание в аквариуме
Скалярия (лат. Pterophyllum scalare) рыба крупная, прожорливая, охочая до мальков и креветок, но красивая и с интересным поведением. Высокое, сжатое с боков тело, разнообразная окраска, достаточно крупные размеры, доступность, все это сделало ее одной и самых распространенных и популярных рыб, которую содержал практически каждый аквариумист.
Рыбка скалярия очень красива и необычна, популярна как среди опытных аквариумистов, так и среди начинающих. В природе они маскировочной окраски, по серебристому телу идут черные полосы. Хотя и там встречаются изменения, рыбы без полос, полностью черные и другие варианты. Но, именно эту склонность к изменениям и используют аквариумисты, чтобы выводить новые, более яркие виды. Сейчас выведено множество разных видов: черная, мраморная, голубая, кои, зеленый ангел, красный дьявол, мраморная, бриллиантовая и другие.
Несмотря на необычную форму тела, относятся они к тем же видам что и дискусы, к цихлидам. Она может быть очень высокой, а в длину достигать 15 см. Средняя по сложности содержания, но для скалярии нужен просторный аквариум, чтобы она могла без проблем плавать. Минимальный объем — 150 литров, но если вы содержите пару или групп, то уже от 200 литров. Сколько живут скалярии? Живут в аквариуме они достаточно долго, 5 лет и более.
youtube.com/embed/n74nBXZ9sWs?feature=oembed» frameborder=»0″ allowfullscreen=»»/>
Скалярий можно содержать в общем аквариуме, но не забывайте что это цихлиды, и совсем мелкую рыбу с ними содержать не желательно.
Обитание в природе
Рыба скалярия была впервые описана Шульцем в 1823 году. Впервые она была завезена в Европу в 1920 году, а разведена в США в 1930. Хотя рыб что продают сейчас и называют обычными, но от рыбы, которая обитает в природе они уже отличаются очень значительно. Обитает она в водоемах с медленным течением в Южной Америке: родина рыбки в центральной Амазонке и ее притоках в Перу, Бразилии и восточном Эквадоре.
В природе они живут в местах с небольшим количеством растений, где питаются мальками, насекомыми, беспозвоночными и растительностью.
В данный момент в роду есть три вида: обычная Pterophyllum scalare, скалярия альтум Pterophyllum altum и скалярия леопольда Pterophyllum leopoldi. На данный момент достаточно сложно понять, какой их видов сейчас наиболее распространен в аквариумистике, так как скрещивание сыграло свою роль.
Отличия видов
Рассмотрим каждую их диких форм скалярии:Половые различия
Размножение в аквариуме
Скалярии образуют устойчивую, моногамную пару, причем они активно нерестятся в общем аквариуме, только икру при это сохранить довольно сложно. Как правило, икра откладывается на вертикальные поверхности: кусок коряги, плоский лист, даже на стекло в аквариуме. Для размножения зачастую ставят специальные приспособления либо конусы, либо кусок пластиковой трубы, либо керамическую трубу.
Как и у всех цихлид, у скалярий развита забота о потомстве. Размножение это непросто нерест, родители ухаживают за икрой, и когда мальки проклюнутся, они продолжают за ними ухаживать, пока те не поплывут.
Так как скалярии сами себе выбирают пару, то лучший способ такую пару получить, это купить шесть или более рыб и выращивать их до того момента пока они не определятся. Очень часто о начале нереста, аквариумист узнает только, когда в одном углу видит икру, в другом всех обитателей аквариума. Но, если вы будете внимательны, то сможете увидеть пару, которая готовится к размножению. Они держатся вместе, отгоняют других рыб, и охраняют укромный уголок в аквариуме.
Скалярии обычно достигают половозрелового возраста в 8-12 месяцев, и могут нерестится каждые 7-10 дней, если у них ее забирать. Нерест начинается с того, что пара выбирает место и начинает методично его очищать. Затем самка откладывает цепочку икринок, а самец сразу же их оплодотворяет. Так продолжается пока вся икра (иногда несколько сотен), не будет отложена, икра скалярий довольно крупная, светлого цвета.
Родители ухаживают за икрой, обмахивают ее плавниками, съедают погибшие или не оплодотворенные икринки (они становятся белыми). Через несколько дней икра проклевывается, но личинки остаются прикрепленными к поверхности. В это время личинка еще не ест, она употребляет содержимое желточного мешка. Еще примерно через неделю, она становится мальком и начинает свободно плавать. Кормить мальков скалярии можно наупилией артемии или другими кормами для мальков. Миллионы мальков скалярии были подняты именно на наупилии артемии, так что это оптимальный выбор. Кормить их нужно три-четыре раза в день, порциями которым они смогут съесть за две-три минуты.
В аквариуме с мальками лучше использовать внутренний фильтр с мочалкой и без крышки, так как она дает достаточную фильтрацию, но при этом не засасывает мальков внутрь. Чистота воды так же важна как и регулярное кормление, именно из-за накопившихся вредных веществ мальки чаще всего гибнут.
Часто аквариумисты спрашивают, почему скалярии съедают свою икру? Это может быть как из-за стресса, когда они нерестятся в общем аквариуме и их отвлекают другие рыбы, так и у молодых пар, которые еще неопытные.
catfishes.ru>
Скалярия обыкновенная (Pterophyllum scalare)
Вероятно большинство продаваемых ныне обыкновенных скалярий относится к данному виду. Традиционно считается самой неприхотливой и простой в разведении.
Пойманная в природе обыкновенная скалярия
Скалярия леопольда Pterophyllum leopoldi
Редко встречается, очень похожа на обычную скалярию, но ее темные пятна несколько светлее, а на теле есть пара черных полос, и одна на спинном плавнике, однако не переходящая на тело
Скалярия леопольди
Скалярия альтум Pterophyllum altum
Или скалярия ориноко, это самая большая рыба из всех трех видов, она может быть в полтора раза больше обычно скалярии и вырастать размером до 40 см. Также характерен резкий переход между лбом и ртом, образующий углубление. На плавниках есть красные точки. Долгие годы этот вид не могли развести в неволе, однако в последние годы удалось получить мальков от скалярии альтум, и она появилась в продаже наряду с особями выловленными в природе.
Скалярия альтум или ориноко
Альтум в природе и в аквариуме, правда видео на английском, но стоит глянуть:youtube.com/embed/MTAbuTYGk0M?feature=oembed» frameborder=»0″ allowfullscreen=»»/>
Описание
Сложность в содержании
Кормление
Чем кормить? Скалярии всеядные, в аквариуме едят любые виды кормов: живые, замороженные и искусственные. Основой кормления могут быть качественные хлопья, а дополнительно давать живые и замороженные корма: трубочник, мотыль, артемию, коретру. Важно знать две вещи, они обжоры и их нельзя перекармливать, как бы они ни просили. И очень осторожно давать мотыль, а лучше вообще от него отказаться. Небольшой перекорм мотылем, и у скалярий начинается вздутие кишечника, да такое что из анального пузыря торчат розовые пузыри. Гораздо безопаснее кормить фирменными кормами, благо они сейчас высоко качества.
Скалярии могут обрывать нежные растения, хоть и не часто. У меня они регулярно обрывают верхушки элеохариса и отдирают мох с коряги. В таком случае, можно добавить в рацион корма со сприулиной.
Содержание и уход
Скалярии достаточно неприхотливые рыбы и могут жить более 10 лет, если обеспечить им подходящие условия. Из-за их формы, для содержания предпочтительны высокие аквариумы объемом не менее 120 литров. Однако, если вы собираетесь содержать несколько этих прекрасных рыб, лучше обзавестись аквариумом 200-250 литров и более. Еще одна выгода от покупки просторного аквариума в том, что в нем родители чувствуют себя спокойнее и не так часто поедают свою икру.
Аквариумную рыбку скалярию нужно содержать в теплой воде, при температуре воды в аквариуме 25-27С. В природе они живут в слабокислой, достаточно мягкой воде, но сейчас они хорошо адаптируются в разнообразным условиям и параметрам. Декор в аквариуме может быть любым, но желательно без острых краев, о которые рыбы могут пораниться.
Скалярии могут обрывать нежные растения, но не очень сильно. У меня они настойчиво едят элеохарис, хотя никогда не голодны и регулярно едят корма с растительными компонентами. А попытку прирастить мох к коряге, они победили очень просто. Регулярно обрывая яванский мох по веточке. Сложно сказать почему они себя так ведут, но, видимо, от скуки и жадного аппетита. В аквариум желательно посадить растения с широкими листьями, типа нимфеи или амазонки, на такие листья они любят откладывать икру.
Строение тела аквариумных скалярий не приспособлено к плаванию в сильном течении, и фильтрация в аквариуме должна быть умеренной. Большой поток воды вызывает стресс, и замедляет рост рыб, так как они расходуют энергию на то чтобы с ним бороться. Разумно использовать внешний фильтр, и подавать воду через флейту либо внутренний и распылять течение. Обязательны еженедельные подмены воды, порядка 20% от объема.
Совместимость с другими рыбами
Скалярий можно содержать в общем аквариуме, но нужно помнить что все же это цихлида, и она может быть несколько агрессивна к мелкой рыбе. Тоже касается мальков и креветок, они великолепные и ненасытные охотники, в моем аквариуме бесчисленные орды креветок неокардинок они выбили подчистую. Они держатся вместе пока молодые, но взрослые рыбы разбиваются на пары и становятся территориальными. Немного пугливы, могут бояться резких движений, звуков и включения света.
С кем можно содержать цихлид? С большой и средней по размеру рыбой, желательно избегать совсем небольших, типа кардиналов и микрорасбор галактика, хотя у меня они чудесно живут с неонами. Однозначно нужно избегать барбусов и желательно любых, кроме вишневых. В моей практике, стая суматранских барбусов скалярий не трогала вообще, а стая огненных барбусов за сутки почти уничтожила им плавники. Хотя считаете что должно быть наоборот. Так же плавники могут грызть тернеции, тетрагоноптерусы, черный барбус, барбус шуберта и денисони.
Содержать можно с живородящими: меченосцы, пецилии, моллинезии, даже с гуппи, но учтите, что в таком случае на малька рассчитывать не стоит. Также мраморные гурами, жемчужные гурами, лунные, конго, эритрозонусы и многие другие рыбы.
Совместимость скалярии
Скалярии — одни из самых популярных аквариумных рыбок. Интересная расцветка, необычное строение тела и, кроме того, довольно хорошая совместимость скалярий с другими рыбками делают их весьма привлекательными питомцами. Именно о последнем и хотелось бы сегодня поговорить.
Скалярии хорошо уживаются практически со всеми миролюбивыми рыбками. Но с некоторыми видами только теоретически совместимы, на практике картина несколько иная. Поэтому давайте рассмотрим подробнее несколько примеров возможного соседства.
Скалярии и барбусы
Барбусы рыбки относительно не агрессивные, очень подвижные и быстрые. Такая суета не особо понравится довольно медлительным скаляриям. Кроме того, освоившись, барбусы вполне могут заинтересоваться длинными привлекательными плавниками скалярий и основательно их потрепать. Особенно черные и суматранские барбусы склонны к такому хулиганству. Но если все рыбки куплены одновременно и с самого раннего возраста живут в одном аквариуме, то вполне возможно мирное соседство. Еще важным фактором тут является объем вашего аквариума: если будет достаточно места, водорослей и укромных уголков, то, скорее всего, эти виды рыбок не особо будут интересоваться друг другом.
Скалярии и золотые рыбки
И скалярии и золотые рыбки очень популярны среди аквариумистов, но вот содержать их вместе не получится по нескольким причинам:
- золотые рыбки предпочитают более прохладную воду, чем скалярии;
- скалярии очень требовательны к чистоте воды, а золотые очень быстро ее загрязняют;
- у этих рыбок разные характеры, и выросшие скалярии могут весьма подпортить плавники золотых рыбок.
Скалярии и дискусы
Эти два вида аквариумных рыбок станут очень даже неплохими соседями. У скалярий и дискусов схожие условия содержания и предпочтения в еде: оба вида склонны к перееданию, поэтому надо строго следить за количеством и качеством корма. К тому же у дискусов похожая на «полумесяц» скалярий плоская дискообразная форма тела и им тоже весьма проблематично собирать корм со дна. Так что дискусы, как и скалярии, будут рады специальной кормушке. Единственным условием является наличие большого аквариума, так как дискусы — рыбки стайные, их лучше содержать по 5-6 особей, да и взрослые скалярии имеют приличные размеры и любят простор.
Гуппи по размеру меньше скалярий, и поэтому они являются не самыми лучшими соседями для крупных соседей. Ведь скалярии склонны воспринимать рыбок меньше себя как корм и вполне могут проглотить всех гуппи.
Меченосцы и скалярии могут вполне мирно уживаться друг с другом, если меченосцы не сильно заинтересуются длинными плавниками скалярий. Для большей гарантии мирного сосуществования желательно держать их вместе с раннего возраста.
Скалярии и петушки тоже довольно неплохой вариант соседства. Обычно эти виды рыбок живут каждый сам по себе, не обращая особого внимания на соседей. Петушки скорее передерутся между собой (особенно самцы), чем со скаляриями. Правда, во время нереста скалярии могут стать слишком агрессивными, защищая потомство, и загоняют петушков. Во избежание этого в аквариуме должно быть достаточно водных растений и укромных местечек для укрытия и уединения.
Скалярии довольно дружелюбные рыбки, но есть ряд исключений, которые необходимо учитывать для того, чтобы никто из ваших питомцев не пострадал. И одним из основных условий, касающихся всех вариантов совместимости, является аквариума необходимого объема. Даже только для 1-2 пар скалярий необходим аквариум объемом от 60 литров, а с учетом соседей эта цифра значительно увеличивается. Об этом необходимо помнить при принятии решения о выборе рыбок.
WomanAdvice.ru>
Совместимость рыбок в одном аквариуме
Совместимость аквариумных рыбок – очень важный вопрос для начинающих и опытных разводчиков. У каждой рыбки индивидуальный характер, стиль поведения вне зависимости от того, травоядная она или хищник. Одни рыбы быстро съедают растения и креветок, другие нападают на самих рыб. Конечно же, встречались случаи, когда в одном резервуаре спокойно уживались практически несовместимые виды.
Таблица совместимости аквариумных рыб
Чтобы систематизировать данный вопрос, следует ознакомиться с условиями обитания каждого гидробионта, а потом решать, к кому его подселять. Оцените степень агрессивности каждого вида, параметры воды, которые приемлемы для них, в каких слоях водоема они обычно плавают. Чтобы ваш аквариум был наполнен жизнью, предоставляется таблица, в которой указана совместимость рыбок пресноводных видов.
Посмотрите видео, рассказывающее о совместимости аквариумных рыбок.
Скалярии
Какие рыбки совместимы со скаляриями? С ними можно поселять представителей неагрессивных видов, средних размеров. К таковым относятся:
- Барбусы;
- Коридорасы;
- Данио;
- Гурами;
- Боции;
- Моллинезии;
- Пецилии;
- Плекостомусы;
- Радужницы;
- Расборы;
- Лабео;
- Меченосцы;
- Тетры.
Между собой скалярии неплохо уживаются в условиях просторного резервуара, однако с возраста молодняка они должны жить в группе 4-8 рыбок, среди которых выбирают себе пару на всю жизнь, как это свойственно Цихлидам. С представителями вьюновых рыбок и креветками совместимы частично, однако риск сожительства в общем резервуаре высокий. Не следует поселять скалярии с такими рыбами:
- Петушками;
- Цихлидами африканскими и южноамериканскими;
- Золотыми рыбками;
- Дискусами;
- Гуппи;
- Карпами кои;
- Астронотусами.
Гурами
Гуппи
Карп кои
Боции
Моллинезии
Астронотус
Плекостомусы
Радужницы
Расборы
Лабео
Барбусы
Меченосцы
AkvariumnyeRybki. ru>
Петушки
Цихлиды
Коридорасы
Данио
Мелкие лучепёрые рыбки семейства Карповые, небольших размеров. Обладают мирным характером. Содержать в общем аквариуме можно с петушками, скаляриями, барбусами, коридорасами, гуппи, гурами, боциями, молинезиями, пецилиями, плекостомусами, радужницами, расборами, лабео, меченосцами, тетрами. Нельзя поселять с цихлидами, дискусами, золотыми рыбками, астронотусами, карпами кои.
Посмотрите на данио и розовых скалярий в одном аквариуме.
Дискусы
Очень красивые, яркие аквариумные рыбки. Обладают мирным характером. Таблица указывает на то, что они совместимы с такими соседями:
- Коридорасами;
- Данио;
- Моллинезиями;
- Пецилиями;
- Плекостомусами;
- Радужницами;
- Расборами;
- Меченосцами;
- Тетрами.
Запрещается запускать в общий резервуар, где живут: скалярии, барбусы, петушки, цихлиды, золотые рыбки, гуппи, карпы кои, астронотусы.
Вьюновые
В природе насчитывается 177 видов, многие из которых прижились в искусственных водоемах. Небольшого размера, выходят на охоту ночью, днем зарываются в грунт или прячутся. Совместимы только с плекостомусами, с другими рыбами совместимость разная, в зависимости от объема резервуара и характера каждой рыбки.
Золотые рыбки
Рыбки, совместимые со скаляриями: скалярии, цихлиды
Увы, сейчас настали времена, когда, несмотря на помощь всемогущего Интернета, всё равно возникают проблемы с получение правдивой информации. И даже размещённые в Сети таблицы совместимости, которые составляли зоологи, порой оказываются не совсем верными. А ведь даже маленький просчёт в данных повлечёт за собой гибель ни в чём не повинных рыбок.
В частности, много ошибочных данных по совместимости скалярий находится в таблицах, где рассматривается их совместимость с другими рыбами. Глядя на такие материалы, приходится руководствоваться в выборе рыб собственной практикой.
Скалярии цихлиды
Итак, каков психологический портрет скалярии? Это крупная изящная рыба, которая чаще всего оказывается очень доброй и миролюбивой по характеру. Скалярии не то что других рыб, но даже растения не кусают. Но было бы слишком просто, если бы скалярии вели себя одинаково. Поскольку они обладают развитым интеллектом, их поступки часто не лишены мотивации. Покусала суматранского барбуса за плавник – значит, эта рыбка обижала её ранее. Съела мальков или неонов? Значит, хозяин дает мало корма, или хищнические инстинкты взыграли. Часто рыбки гоняют по аквариуму представителей своего вида.
Рыбки, совместимые со скаляриями
Неплохой союз получится, если подселить в аквариум к скаляркам сомиков.
Абсолютно совместимы скалярии и пециллии: их отношение друг к другу можно назвать флегматичным — эти рыбки даже не пытаются проявить интерес друг к другу.
С радужницами они будут жить мирно, если росли с детства, — в противном случае время от времени эти малышки будут пропадать в аквариуме.
Скалярии и лабео живут дружно, но больше одного лабео в аквариуме лучше не держать: самый сильный обязательно задерёт и обидит стальных. А между собой эти рыбки могут драться так свирепо, что только плавники будут лететь во все стороны!
С кем совместимы скалярии ещё, помимо перечисленных выше? Пожалуй, с меченосцами, но раз на раз не приходится: порой эти красивые рыбы не дают скаляркам шагу ступить — кусаются, толкают, дергают за нижние плавники.
С кем несовместимы скалярии?
С петушками. Абсолютно. Чересчур агрессивные рыбки могут обижать мирных скалярок, дергать их за хвосты и плавники.
Африканские цихлиды — такие как принцессы Бурунди — агрессивно настроены против скалярий: могут их задирать или не давать получать корм.
Таким образом, прежде чем приобретать рыбок, веря данным таблицы, нужно сверять полученные сведения с другими заводчиками. Данные, приведённые в статье, были получены с форумов аквариумистов, которые по своему опыту знают, с кем уживаются скалярии, а с кем – нет.
8lap.ru>
Скалярии: содержание в аквариуме
Плавучий полумесяц, крылатый лист, или скалярия по праву занимает место одной из любимых рыб многих заводчиков, возможно, благодаря своей необычной форме тела и неяркой, но разнообразной и красивой расцветке, а возможно, благодаря своему активному поведению и уживчивому характеру. Эта рыбка довольно капризна и требовательна к условиям содержания, особенно это касается чистоты воды и качества корма. Поэтому, если уж вы решились поселить ее в своем водоеме, то необходимо основательно к этому подготовиться.
Скалярия в природе
В естественной среде рыбы облюбовали для жизни небольшие речки Южной Америки со слабым течением и обилием растений, тихие поросшие тростником бухты, воды побережья, притоки Амазонки и Ориноко.
Как выглядит скалярия?
Эти цихлиды имеют высокое (до 26 см) и короткое (до 15 см) дисковидное тело. Спинной и анальный плавники сильно удлинены, благодаря чему тело рыбки имеет сходство с полумесяцем. Грудные плавники нитевидные. Они, как и хвостовые, к концам заостряются. Самцы менее полные, чем самки, и имеют большой лоб.
Традиционная расцветка скалярий серебристая с черными вертикальными полосками. Как правило, их четыре: первая проходит через глаз, последняя — через хвостовой стебель, а две промежуточные — через тело. Cпинка темнее, чем брюшко. Благодаря интенсивной селекционной работе окраска рыбок может не только варьироваться от зеленовато-серой до серебристо-оливковой, но и быть черной, мраморной, золотой, дымчатой, зеленой, двух- и даже трехцветной. Популярны вуалевые формы этих окунеобразных.
Современные полумесяцы имеют три основные разновидности:
- Pterophyllum scalare.
- Pterophyllum altum – это крупная (до 20 см) и высокая (до 40 см) рыба.
- Pterophyllum leopoldi, или горбатая скалярия. Ее длина в неволе не превышает 10 см.
Характер
Скалярии – рыбки стайные, они совсем не выносят одиночества и отличаются верностью своему партнеру. Поэтому содержать их лучше маленькими группами по 4-6 штук. В группе присутствует строгая иерархия: самый лучший угол достается самой крупной паре, паре поменьше – условия похуже, рыбы-одиночки являются изгнанниками и доступ к корму получают в последнюю очередь. Причем если такого отщепенца отселить, то его место моментально займет другая особь или даже самая слабая пара. Чтобы решить проблему, нужно увеличить либо аквариум, либо численность стаи.
Еще одна особенность скалярий – пугливость. Если неожиданно постучать или внезапно зажечь свет, то рыбки могут испытать сильный испуг вплоть до потери окраски.
Как создать идеальные условия?
Чем кормить скалярий?
Каких-либо особенных требований здесь нет, главное, чтобы питание было качественным. Данные цихлиды охотно едят живой мотыль, коретру, дафнию. Можно давать сухие, гранулированные корма и хлопья. Любят полакомиться водорослями и кусочками листьев подводных растений. Меню можно разнообразить за счет фарша из морепродуктов, перемолотого мяса мидии и креветки.
Место кормления желательно оборудовать специальной кормушкой, так как из-за формы тела скалярии не могут брать пищу со дна.
Эти рыбы склонны к перееданию, поэтому необходимо контролировать размеры порций. Здесь действует правило: лучше недокормить, чем перекормить. Иногда можно наблюдать беспричинный отказ от пищи, но переживать не стоит. Максимум через неделю все вернется в нормальный режим.В общем, скалярии – это удивительные рыбы как по внешнему виду, так и по поведению. И тот, кто решится завести этот прекрасный полумесяц, должен знать: главное, подготовиться к этому событию, и тогда содержание рыбок вас не разочарует!
aquariumguide.ru>
С кем уживутся рыбы попугаи?
Основные характеристики
Как содержать красных попугаев в аквариуме
Чем кормить попугаев
Совместимость со скаляриями
По сей день продолжаются споры, насколько возможна совместимость попугаев со скаляриями, ведь бывали как случаи нападений на этих рыб, так и мирное сосуществование. Скалярии предпочитают укрываться в водорослях, а попугаи любят ощупывать их пластины, ненароком повреждая рыбу. Раз «полакомившись» скалярией, это существо не остановится, и будет трогать оставшихся.
Встречались примеры, когда попугаи уживались в переделах одной «коммунальной квартиры», но объем её должен быть не менее 200 литров. Во время нереста рыбы попугаи загоняют скалярий в дальний угол, придерживая их там. Поскольку скалярии медленные, попугаи могут обкусывать их плавники. Если у вас нет другого выхода, как поселить их вместе, то соорудите для всех комфортные укрытия.
Для попугаев подойдут рыбы быстрые, схожих размеров. При соблюдении всех рекомендаций ваш аквариум превратится в дружелюбный питомник, жизнь в котором станет настоящей идиллией для каждой рыбки.
Посмотрите также: Цихлиды — правила содержания в домашних аквариумах
AkvariumnyeRybki.ru>
Другие статьи
Совместимость скалярий с другими рыбками
С кем мирно уживется скалярия? Кто наиболее подходит на роль соседа этой красивой рыбки? Кого не стоит сажать с ней в одну банку? От чего зависит совместимость скалярии? Об этом читайте в сегодняшней статье про скалярию!
Принципы совместимости скалярий
Скалярии — это прежде всего цихлиды и, как все цихлиды, они могут быть агрессивны по отношению к рыбкам других видов.
Скалярии — относительно медленные пловцы с длинными плавниками. Это делает их удобной мишенью для других агрессивных рыбок, особенно для любителей покусать плавники.
Совместимые для скалярий рыбы должны быть приспособлены к схожим условиям содержания: температура, параметры воды, кормовой рацион. Кроме того, лучше будет, если они будут иметь подобающие размеры и при этом всем хватит места в аквариуме.
Шанс совместимости скалярий с другими рыбами можно увеличить. Для этого:
- Заселяйте особей как можно моложе и парами самец-самка.
- Чем больше пространства в аквариуме, тем лучше. Не допускайте перенаселения.
- Чем больше содержится аквариумных растений, тем меньше будет конфликтов.
Наиболее совместимые рыбки для скалярий:
- Гурами. Скалярий и гурами можно видеть вместе очень во многих аквариумах.
Гурами
- Барбус Денисони
Барбус Денисони
- Моллинезии, меченосцы и другие живородящие среднего и крупного размера.
Но не гуппи! Скалярии будут их есть.
Рыбка меченосец
- Тернеция, краснопятнистая тетра и прочие тетры малого и среднего размера
Тернеция
- Расборы
Расбора
- Дискусы
Дискус
- Придонные рыбки, такие как плекостомус или анциструс
Анциструс
Плохо совместимые со скаляриями рыбы
Аквариумная рыба Красный неон
По мере роста скаляриям становится все легче охотиться на маленьких рыбок, таких как гуппи или неоны. Эти рыбки плохо совместимы со скаляриями. Но скалярии менее агрессивны по отношению к ним, если они росли вместе. Купите скалярию как можно младше. Еще на форумах пишут, что скалярии не трогают неонов, которые были в аквариуме до «переезда» в него скалярии. Уважение к аборигенам?
Видео
На видео можно посмотреть пример аквариума, заселенного скаляриями и совместимыми для них рыбками:
фото, содержание и уход, разведение, совместимость
Скалярия (лат. Pterophyllum scalare) рыба крупная, прожорливая, охочая до мальков и креветок, но красивая и с интересным поведением. Высокое, сжатое с боков тело, разнообразная окраска, достаточно крупные размеры, доступность, все это сделало ее одной и самых распространенных и популярных рыб, которую содержал практически каждый аквариумист.
Эта рыба красива и необычна, популярна как среди опытных аквариумистов, так и среди начинающих.
В природе они маскировочной окраски, по серебристому телу идут черные полосы. Хотя и там встречаются изменения, рыбы без полос, полностью черные и другие варианты. Но, именно эту склонность к изменениям и используют аквариумисты, чтобы выводить новые, более яркие виды.
Сейчас выведено множество разных видов: черная, мраморная, голубая, кои, зеленый ангел, красный дьявол, мраморная, бриллиантовая и другие.
Несмотря на необычную форму тела, относятся они к тем же видам что и дискусы, к цихлидам. Она может быть очень высокой, а в длину достигать 15 см.
Средняя по сложности содержания, но для них нужен просторный аквариум, чтобы она могла без проблем плавать. Минимальный объем — 150 литров, но если вы содержите пару или групп, то уже от 200 литров.
Скалярий можно содержать в общем аквариуме, но не забывайте что это цихлиды, и совсем мелкую рыбу с ними содержать не желательно.
Обитание в природе
Рыба была впервые описана Шульцем в 1823 году. Впервые она была завезена в Европу в 1920 году, а разведена в США в 1930. Хотя рыб что продают сейчас и называют обычными, но от рыбы, которая обитает в природе они уже отличаются очень значительно.
Обитает она в водоемах с медленным течением в Южной Америке: родина рыбки в центральной Амазонке и ее притоках в Перу, Бразилии и восточном Эквадоре.
В природе они живут в местах с небольшим количеством растений, где питаются мальками, насекомыми, беспозвоночными и растительностью.
В данный момент в роду есть три вида: обычная Pterophyllum scalare, скалярия альтум Pterophyllum altum и скалярия леопольда Pterophyllum leopoldi. На данный момент достаточно сложно понять, какой их видов сейчас наиболее распространен в аквариумистике, так как скрещивание сыграло свою роль.
Виды скалярий
Скалярия обыкновенная (Pterophyllum scalare)
Вероятно большинство продаваемых ныне скалярий относится к данному виду. Традиционно считается самой неприхотливой и простой в разведении.
Пойманная в природе обыкновенная скалярияСкалярия леопольда (Pterophyllum leopoldi)
Редко встречается, очень похожа на обычную скалярию, но ее темные пятна несколько светлее, а на теле есть пара черных полос, и одна на спинном плавнике, однако не переходящая на тело
Скалярия леопольдиСкалярия альтум (Pterophyllum altum)
Или скалярия ориноко, это самая большая рыба из всех трех видов, она может быть в полтора раза больше обычной и вырастать размером до 40 см.
Также характерен резкий переход между лбом и ртом, образующий углубление. На плавниках есть красные точки.
Долгие годы этот вид не могли развести в неволе, однако в последние годы удалось получить мальков от скалярии альтум, и она появилась в продаже наряду с особями выловленными в природе.
Описание
У рыб обитающих в природе серебристое тело с темными полосами. Сжатое с боков тело, с большими плавниками и заостренной головой. На хвостовом плавнике у половозрелых рыб могут развиваться длинные тонкие лучи.
Такая форма помогает им маскироваться среди корней и растений. Именно по этому у дикой формы расцветка в виде вертикальных темных полос.
Рыбы всеядные, в природе они подстерегают в засаде мальков, мелких рыб и беспозвоночных.
Средняя продолжительность жизни 10.
Сложность в содержании
Средней сложности, не рекомендуются начинающим аквариумистам, так как требуют приличных объемов, стабильных параметров воды и могут быть агрессивны к мелким рыбам. Кроме того, они с замечательной сноровкой охотятся на мальков и мелких креветок.
Также сами могут страдать от рыб обрывающих плавники, типа суматранских барбусов и тернеций.
Кормление
Чем кормить? Скалярии всеядные, в аквариуме едят любые виды кормов: живые, замороженные и искусственные.
Основой кормления могут быть качественные хлопья, а дополнительно давать живые и замороженные корма: трубочник, мотыль, артемию, коретру. Важно знать две вещи, они обжоры и их нельзя перекармливать, как бы они ни просили.
И очень осторожно давать мотыль, а лучше вообще от него отказаться. Небольшой перекорм мотылем, и у них начинается вздутие кишечника, да такое что из анального пузыря торчат розовые пузыри.
Гораздо безопаснее кормить фирменными кормами, благо они сейчас высоко качества.
Скалярии могут обрывать нежные растения, хоть и не часто. У меня они регулярно обрывают верхушки элеохариса и отдирают мох с коряги. В таком случае, можно добавить в рацион корма со спирулиной.
А попытку прирастить мох к коряге, они победили очень просто. Регулярно обрывая яванский мох по веточке. Сложно сказать почему они себя так ведут, но, видимо, от скуки и жадного аппетита.
Содержание и уход
Это достаточно неприхотливые рыбы и могут жить более 10 лет, если обеспечить им подходящие условия. Из-за их формы, для содержания предпочтительны высокие аквариумы объемом не менее 120 литров.
Однако, если вы собираетесь содержать несколько этих прекрасных рыб, лучше обзавестись аквариумом 200-250 литров и более. Еще одна выгода от покупки просторного аквариума в том, что в нем родители чувствуют себя спокойнее и не так часто поедают свою икру.
Рыб нужно содержать в теплой воде, при температуре воды в аквариуме 25-27С. В природе они живут в слабокислой, достаточно мягкой воде, но сейчас они хорошо адаптируются в разнообразным условиям и параметрам.
Декор в аквариуме может быть любым, но желательно без острых краев, о которые рыбы могут пораниться.
В аквариум желательно посадить растения с широкими листьями, типа нимфеи или амазонки, на такие листья они любят откладывать икру.
Строение тела аквариумных скалярий не приспособлено к плаванию в сильном течении, и фильтрация в аквариуме должна быть умеренной. Большой поток воды вызывает стресс, и замедляет рост рыб, так как они расходуют энергию на то чтобы с ним бороться.
Разумно использовать внешний фильтр, и подавать воду через флейту либо внутренний и распылять течение.
Обязательны еженедельные подмены воды, порядка 20% от объема. Скалярии очень чувствительны к накоплению в воде нитратов и аммиака. Это одна из тех рыб, которые любят свежую воду и обильные подмены. Многие заводчики практикую 50% подмену воды в аквариуме, а если разводят или выращивают малька, то это становится ежедневной процедурой.
Совместимость
Скалярий можно содержать в общем аквариуме, но нужно помнить что все же это цихлида, и она может быть несколько агрессивна к мелкой рыбе. Тоже касается мальков и креветок, они великолепные и ненасытные охотники, в моем аквариуме бесчисленные орды креветок неокардинок они выбили подчистую.
Они держатся вместе пока молодые, но взрослые рыбы разбиваются на пары и становятся территориальными.
Немного пугливы, могут бояться резких движений, звуков и включения света.
С кем можно содержать цихлид? С большой и средней по размеру рыбой, желательно избегать совсем небольших, типа кардиналов и микрорасбор галактика, хотя у меня они чудесно живут с неонами. Самое интересное что у других этих самых неонов жадно поедают. Видимо, имеет значение размер рыбы. Если ее можно проглотить, то они непременно это сделают.
Однозначно нужно избегать барбусов и желательно любых, кроме вишневых. В моей практике, стая суматранских барбусов не трогала вообще, а стая огненных барбусов за сутки почти уничтожила им плавники. Хотя считаете что должно быть наоборот. Так же плавники могут грызть тернеции, тетрагоноптерусы, черный барбус, барбус шуберта и денисони.
Содержать можно с живородящими: меченосцы, пецилии, моллинезии, даже с гуппи, но учтите, что в таком случае на малька рассчитывать не стоит. Также мраморные гурами, жемчужные гурами, лунные, конго, эритрозонусы и многие другие рыбы.
Половые различия
Как определить пол? Отличить самец или самка до наступления половозрелого возраста невозможно. Да и то, гарантированно можно понять только во время нереста, когда у самки появляется толстый, конусообразный яйцеклад.
Косвенные признаки обманчивы, самец лобастее и крупнее, тем более что самки могут создавать пару, если нет самцов. И это пара будет себя вести точно так же, вплоть до имитации нереста.
Так что определить пол вы сможете только у взрослых рыб, да и то с некоторой относительностью.
Размножение в аквариуме
Скалярии образуют устойчивую, моногамную пару, причем они активно нерестятся в общем аквариуме, только икру при это сохранить довольно сложно. Как правило, икра откладывается на вертикальные поверхности: кусок коряги, плоский лист, даже на стекло в аквариуме.
Для размножения зачастую ставят специальные приспособления либо конусы, либо кусок пластиковой трубы, либо керамическую трубу.
Как и у всех цихлид, у них развита забота о потомстве. Размножение это непросто нерест, родители ухаживают за икрой, и когда мальки проклюнутся, они продолжают за ними ухаживать, пока те не поплывут.
Так как рыбы сами себе выбирают пару, то лучший способ такую пару получить, это купить шесть или более рыб и выращивать их до того момента пока они не определятся.
Очень часто о начале нереста, аквариумист узнает только, когда в одном углу видит икру, в другом всех обитателей аквариума.
Но, если вы будете внимательны, то сможете увидеть пару, которая готовится к размножению. Они держатся вместе, отгоняют других рыб, и охраняют укромный уголок в аквариуме.
Обычно достигают половозрелового возраста в 8-12 месяцев, и могут нерестится каждые 7-10 дней, если у них ее забирать. Нерест начинается с того, что пара выбирает место и начинает методично его очищать.
Затем самка откладывает цепочку икринок, а самец сразу же их оплодотворяет. Так продолжается пока вся икра (иногда несколько сотен), не будет отложена, икра довольно крупная, светлого цвета.
Родители ухаживают за икрой, обмахивают ее плавниками, съедают погибшие или не оплодотворенные икринки (они становятся белыми).
Через несколько дней икра проклевывается, но личинки остаются прикрепленными к поверхности. В это время личинка еще не ест, она употребляет содержимое желточного мешка.
Еще примерно через неделю, она становится мальком и начинает свободно плавать. Кормить мальков можно науплией артемии или другими кормами для мальков. Миллионы мальков были подняты именно на науплии артемии, так что это оптимальный выбор.
Кормить их нужно три-четыре раза в день, порциями которым они смогут съесть за две-три минуты.
В аквариуме с мальками лучше использовать внутренний фильтр с мочалкой и без крышки, так как она дает достаточную фильтрацию, но при этом не засасывает мальков внутрь.
Чистота воды так же важна как и регулярное кормление, именно из-за накопившихся вредных веществ мальки чаще всего гибнут.
Часто аквариумисты спрашивают, почему рыбы съедают свою икру? Это может быть как из-за стресса, когда они нерестятся в общем аквариуме и их отвлекают другие рыбы, так и у молодых пар, которые еще неопытные.
Скалярии: совместимость с золотыми рыбками
Продолжая обсуждать совместимость скалярий с другими видами рыб, нужно вспомнить и карповых. На самом деле эти два вида рыб несовместимы друг с другом — ни по таблице, ни в реальности, — хотя, конечно, существуют приятные исключения.
Например, барбусы (особенно суматранские) часто задирают медлительных скалярий, дёргают из за плавники и кусают. Плавниковая гниль и белый налёт после этого – не редкость.
А если очень хочется завести золотых рыбок — к примеру, вуалехвоста красную шапочку? Как отнесутся скалярки к этому гостю? Есть ли риск в разведении этих двух видов рыб?
Скалярии и золотые рыбки
Скалярии по-разному уживаются с семейством Cyprinidae. Есть аквариумы, где спокойно и без драк живут суматранские барбусы и скалярии, а есть аквасы, где хулиганские выходки со стороны барбусов – дело каждодневное.
С золотыми рыбками скалярки однозначно не уживутся. Во-первых, первые слишком разные по требованиям к содержанию. Вуалехвостам, к примеру, требуется температура воды от 14 до 25 градусов, а жёсткость — от 6 до 18 градусов. А вот данные для суматранцев: температура от 24 до 27, жесткость — от 6,3 до 7,5. Скалярии все-таки — более нежные и благородные рыбки по сравнению с золотыми.
Скалярии с золотыми рыбками могут конфликтовать. Инициаторами драк становятся золотые рыбки, в принципе немного агрессивные по характеру создания.
От золотых рыбок остаётся больше отходов, чем от скалярий. Кроме того, они часто съедают растения из аквариума. Скалярии же никогда не станут портить листья.
Так что эти совершенно разные рыбки совершенно несовместимы друг с другом.
Скалярии: совместимость с другими рыбами
Хочется сразу сказать, что насчёт совместимости скалярий с другими видами рыб всё очень относительно. Скалярка принадлежит роду цихлид, а значит, – хищница. Мелких рыбёшек и рачков она вполне может принять за органический корм, поданный хозяином.
Другие рыбки — цихлиды, карповые и т.д. — не прочь пощипать скалярок за плавники и хвост.
На такой случай нужно заранее договориться с продавцами зоомагазина о возврате, если рыбки будут несовместимы.
В заключение хочется сказать, что нужно всегда иметь запасной аквариум на случай рассадки питомцев.
Пользовательские скаляры — Apollo Server
Спецификация GraphQL включает типы скаляров по умолчанию: Int
, Float
, String
, Boolean
и ID
. Хотя эти скаляры охватывают большинство случаев использования, некоторым приложениям необходимо поддерживать другие атомарные типы данных (например, Date
) или добавлять проверку к существующему типу. Чтобы включить это, вы можете определить собственные скалярные типы.
Чтобы определить собственный скаляр, добавьте его в схему следующим образом:
Типы объектов в вашей схеме теперь могут содержать поля типа MyCustomScalar
.Однако Apollo Server все еще должен знать, как взаимодействовать со значениями этого нового скалярного типа.
После того, как вы определите настраиваемый скалярный тип, вам необходимо определить, как Apollo Server взаимодействует с ним. В частности, нужно определить:
Вы определяете эти взаимодействия в экземпляре класса GraphQLScalarType
.
Дополнительные сведения о системе типов библиотеки
graphql
см. В официальной документации.
Следующий объект GraphQLScalarType
определяет взаимодействия для настраиваемого скаляра, представляющего дату (это один из наиболее часто реализуемых настраиваемых скаляров).Предполагается, что наш бэкэнд представляет дату с помощью объекта JavaScript Date
.
Копировать
const {GraphQLScalarType, Kind} = require ('graphql');
const dateScalar = new GraphQLScalarType ({
имя Дата',
description: 'Пользовательский скалярный тип даты',
serialize (value) {
возвращаемое значение.getTime ();
},
parseValue (значение) {
вернуть новую дату (значение);
},
parseLiteral (ast) {
if (ast.kind === Kind.INT) {
вернуть parseInt (ast.value, 10);
}
return null;
},
});
Эта инициализация определяет следующие методы:
-
сериализовать
-
parseValue
-
parseLiteral
Вместе эти методы описывают, как Apollo Server взаимодействует со скаляром в каждом сценарии.
сериализовать
Метод сериализации
преобразует внутреннее представление скаляра в JSON-совместимый формат, чтобы Apollo Server мог включить его в ответ операции.
В приведенном выше примере скаляр Date
представлен на бэкэнде объектом JavaScript Date
. Когда мы отправляем скаляр Date
в ответе GraphQL, мы сериализуем его как целочисленное значение, возвращаемое функцией getTime
объекта JavaScript Date
.
Обратите внимание, что Apollo Client не может автоматически интерпретировать настраиваемые скаляры (см. Проблему), поэтому ваш клиент должен определить настраиваемую логику для десериализации этого значения по мере необходимости.
parseValue
Метод parseValue
преобразует значение JSON скаляра сериализации
d в его внутреннее представление.
Apollo Server вызывает этот метод, когда скаляр появляется во входящем запросе (например, в аргументе поля).
parseLiteral
Когда входящая строка запроса включает жестко запрограммированное значение для скаляра, это значение является частью абстрактного синтаксического дерева документа запроса (AST).Apollo Server вызывает метод parseLiteral
для преобразования представления значения AST (которое всегда является строкой) в JSON-совместимый формат, ожидаемый методом parseValue
(в приведенном выше примере ожидается целое число).
После определения экземпляра GraphQLScalarType
вы включаете его в ту же карту преобразователя, которая содержит преобразователи для других типов и полей вашей схемы:
Копировать
const {ApolloServer, gql} = require ('apollo-server');
const {GraphQLScalarType, Kind} = require ('graphql');
const typeDefs = gql`
скалярная дата
type Event {
я сделал!
дата: Дата!
}
type Query {
события: [Событие!]
}
`;
const dateScalar = new GraphQLScalarType ({
});
const resolvers = {Дата: dateScalar};
const server = новый ApolloServer ({
typeDefs,
резолверы
});
В этом примере мы создаем специальный скаляр с именем Odd
, который может содержать только нечетные целые числа:
Копировать
const {ApolloServer, gql} = require ('apollo-server');
const {GraphQLScalarType, Kind} = require ('graphql');
const typeDefs = gql`
скалярный Odd
type MyType {
oddValue: Odd
}
`;
function oddValue (значение) {
возвращаемое значение% 2 === 1? значение: ноль;
}
const resolvers = {
Нечетный: новый GraphQLScalarType ({имя: 'Нечетный', описание: 'Нечетный настраиваемый скалярный тип', parseValue: oddValue, сериализовать: oddValue, parseLiteral (ast) {if (ast.
вид === Kind.INT) {return oddValue (parseInt (ast.value, 10)); } return null; },}),};
const server = новый ApolloServer ({typeDefs, resolvers});
server.listen (). then (({url}) => {
console.log (`🚀 Сервер готов на $ {url}`)
});
Если другая библиотека определяет специальный скаляр, вы можете импортировать его и использовать как любой другой символ.
Например, пакет graphql-type-json
определяет объект GraphQLJSON
, который является экземпляром GraphQLScalarType
.Этот объект можно использовать для определения скаляра JSON
, который принимает любое допустимое значение JSON.
Сначала установите библиотеку:
Копировать
$ npm install graphql-type-json
Затем требует
объекта GraphQLJSON
и добавляет его в карту резолвера как обычно:
Копировать
const {ApolloServer, gql} = require ('apollo-server');
const GraphQLJSON = require ('graphql-type-json');
const typeDefs = gql`
скалярный JSON
type MyObject {
myField: JSON
}
type Query {
объекты: [MyObject]
}
`;
const resolvers = {
JSON: GraphQLJSON
};
const server = новый ApolloServer ({typeDefs, resolvers});
сервер.
слушайте (). then (({url}) => {
console.log (`🚀 Сервер готов на $ {url}`)
});
Основные операции SQL — это присваивание и сравнение. Операции присваивания выполняются во время выполнения INSERT, UPDATE, FETCH,
Операторы SELECT INTO, SET , присвоение и VALUES INTO. Основное правило для обеих операций состоит в том, что типы данных операндов должны быть совместимы.
Совместимость со столбцом, в котором есть процедура поля, определяется типом данных столбца, который применяется к декодированной форме его значения. Основное правило для операций присваивания заключается в том, что нулевое значение не может быть присвоено ни столбцу, который не может содержать нулевые значения, ни узлу.
переменная, не имеющая связанной индикаторной переменной. Подтемы: |
;;; - * - Режим: Лисп; Синтаксис: Common-Lisp; Пакет: ONTOLINGUA-USER; База: 10 - * - ;;; Скалярные величины ;;; (c) 1993 Грег Олсен и Томас Грубер (в пакете "ONTOLINGUA-USER") (теория определения скалярных величин (физических величин) «Термин« скаляр »часто приравнивается к полю действительных чисел.В этой теории мы распространяем это понятие на величины в целом, которые связаны с размерами и единицами. Скалярные величины - это величины, величина которых является действительным числом, например, «длина стержня а». Нормальные операторы для реальных арифметические операции, такие как + и *, и отношение <, расширяются в случае скалярных величин (т. е. с учетом размеров и единиц). Скалярные величины не пересекаются с векторными величинами и скалярными функциями ". : issues ("(c) 1993, 1994 Грег Р.Олсен и Томас Р. Грубер " (: см. также "Статья EngMath on line"))) (теоретически скалярные величины) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;; ;;; Скалярные величины ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;; (define-class SCALAR-QUANTITY (? q) "Скалярная величина - это постоянная величина, величина которой является действительной номер. Важным свойством скалярных величин является то, что они образуют поле относительно сложения и умножения (с собственными ограничения подкласса).
Класс скалярных величин образует частичный порядок с отношением «меньше чем» <, поскольку < является отношение-расширенное-к-количеству и < определяется по реалам. В Отношение < не является полным порядком по классу скалярной величины поскольку элементы из некоторых подклассов, например, длины, являются несравнимо с элементами из других подклассов, такими как масса количества. " ;; все скалярные величины - это величины, величина которых является действительным числом : iff-def (и (постоянное количество? q) (для всех? (=> (и (единица измерения? u) (совместимые количества? u? q)) (вещественное число (величина? q? u))))) : axiom-def (и (суперкласс вещественного числа скалярной величины) (скалярная величина частичного порядка <))) (определить-экземпляр IDENTITY-SCALAR (скалярное количество) «Единичный» элемент для скалярных количеств или единичный элемент с относительно умножения.
Этот элемент уникальный и общий для всех скалярные величины независимо от связанных физических измерений. Следовательно, этот элемент равен числу 1. Аксиомы говорят нам что произведение любой скалярной величины x и тождественного скаляра есть x ». : = 1 : axiom-def (and (= (количество. размерность тождественный скаляр) тождественное измерение) (элемент-идентичности-для идентичности-скаляр * скалярная величина))) (функция определения + (? x? y): ->? z "+ определяет специализацию оператора сложения количества + для скалярных величин.Оператор применяет ограничение, что количества должны быть совместимы. Оператор определяется в терминах оператор сложения чисел + и величины величин для конкретный блок. Скалярные величины общей размерности образуют абелевой группы относительно этого оператора и нулевого скаляра оператора такое же физическое измерение ". : когда (и (скалярная величина? x) (скалярная величина? y)) : iff-def (и (скалярная величина? z) (для всех? (=> (и (единица измерения? u) (совместимые количества? x? u)) (= (+ (величина? x? u) (величина? y? u)) (величина? z? u))))) : axiom-def (forall? d (=> (физический размер? d) (абелева группа (размерность скалярных величин? d) + (нулевой скаляр для размерности? d))))) (функция определения * (? x? y): ->? z "* определяет специализацию количества оператор умножения * для скалярных величин.
Оператор применяет соотношение между физическими размерами операндов и товар. Оператор определяется числом оператор умножения * и величины величин для конкретный блок. Скалярные величины, исключая все нулевые скаляры, образуют абелевой группы относительно этого оператора и тождественно-скалярной <1> . Этот оператор распределяет по оператору + для скалярных величин, обеспечение полевого поведения с ограничениями." : когда (и (скалярная величина? x) (скалярная величина? y)) : iff-def (и (скалярная величина? z) (forall (? u? u1? u2) (=> (и (единица измерения? u) (совместимые количества? x? u) (единица измерения? u1) (совместимые количества? y? u1) (единица измерения? u1) (= (количество. размер? u2) (* (количество.размер? u) (количество.
размер? u1)))) (= (* (величина? x? u1) (величина? y? u2)) (величина? z? u))))) : axiom-def (абелева группа (каппа (? х) (и (скалярная величина? x) (для всех? тусклый (=> (физический размер? тусклый) (/ = (нулевой скаляр для размерности? dim) ?Икс))))) * 1)) (функция определения РЕЦЕПТ (? x): ->? y "RECIP определяет специализацию мультипликативного обратный оператор для скалярных величин." : когда (скалярная величина? x) : def (и (скалярная величина? y) (для всех? тусклый (=> (/ =? x (нулевой скаляр для измерения? dim)) (= (*? x? y) тождественно-скалярный))))) (функция определения EXPT (? x? r): ->? z "EXPT определяет действительное возведение в степень для скалярных величин.
Специализируется EXPT. " : когда (и (скалярная величина? x) (действительное число? г)) : def (и (скалярная величина? z) (=> (=? r 0) (=? z 1)) (для всех? (=> (единица измерения? u) (= (EXPT (величина? X? U)? R) (величина? z (EXPT? u? r))))))) (define-function SCALAR-QUANTITIES-OF-DIMENSION (? Dimension): ->? class «Скалярные величины делятся на классы одинаковой размерности.Все экземпляры одного из этих классов имеют одинаковое физическое измерение. Каждый из этих классов образует линейный порядок относительно < связь. Примерами являются скаляры длины, скаляры времени и скаляры масс. скалярных подклассов ". ;; все экземпляры «x» класса являются скалярами одной размерности. : = (если (физическое измерение? измерение) (каппа (? q) (и (скалярная величина? q) (= (количество. размер? q)? размер)))) : ограничения (и (физическое измерение? измерение) (класс? класс) (линейный порядок? класс <))) (функция определения НУЛЬ-СКАЛЯР ДЛЯ РАЗМЕРА (? измерение): ->? нулевой скаляр "Нулевой элемент для скаляров физической размерности ?измерение.
Действительное число 0 - это нулевая скалярная величина для количества единичной размерности (то есть безразмерные скаляры). Мы делаем различие между 0 метрами и 0 секундами, например, для соблюдения наших требований к совместимости с такими операторами, как сложение (т.е. количество длины + количество длины всегда равно другое количество длины). На практике различие между нулем количество может не иметь значения для любых моделей, но есть освобождает нас от особых случаев для составления количеств различных размеры." : iff-def (и (физическое измерение? измерение) (скалярная величина? нулевой скаляр) (нулевое количество? нулевой скаляр) (элемент идентичности для ? нулевой скаляр + (размерность скалярных величин? размерность))) : axiom-def (= 0 (тождественное измерение НУЛЕВОГО СКАЛЯРНОГО ИЗМЕРЕНИЯ)))
Этот перевод из Lisp в HTML предоставил вам Франсуа Жербо и Том Грубер
Случай скалярного встраивания UDF, где контекст — это все
Вот вам интересная история на этой неделе.
В рамках новых улучшений интеллектуальной обработки запросов, представленных в предстоящем SQL Server 2019, мы находим новую функцию, называемую скалярной UDF , встраиваемой . Этот пост не о точном встраивании скалярных UDF, а о IQP-смежном, если хотите.
Он работает, взяв типичную скалярную определяемую пользователем функцию (другими словами, определяемую пользователем функцию, которая возвращает одно значение), и вместо того, чтобы показывать нулевую стоимость в предполагаемом плане запроса и не вызывать никаких проблем с производительностью запроса. (особенно для больших рабочих нагрузок) оптимизатор берет код из этой UDF и преобразует его в «реляционные выражения» (эй, это то, что говорится в документации).
Другими словами, представьте, что код из UDF был переписан как часть вызывающего его запроса. Есть большая вероятность, что производительность улучшится, потому что она не станет непрозрачной для механизма выполнения.
Единственное требование, чтобы воспользоваться этой функцией, — установить уровень совместимости базы данных на 150 (что является совместимостью SQL Server 2019 по умолчанию).
При отсутствии крайних случаев или регрессий это может привести к значительному повышению производительности при нулевом изменении кода, потому что оптимизатор запросов делает за вас тяжелую работу.Как и все новые функции оптимизации в наши дни, ее можно отключить на уровне запроса или базы данных, и по большей части это очень полезная вещь, особенно для тех сред, где вы не можете вносить изменения в запросы.
Недавно в SQLBits я беседовал с Пиналом Дейвом об интересной проблеме, с которой он столкнулся при подготовке к сеансу демонстрации этой новой функции.
В этой демонстрации образец базы данных AdventureWorks изначально был настроен на уровень совместимости 140 (совместимость с SQL Server 2017 по умолчанию) для выполнения скалярной UDF.На этом этапе расчетный план выполнения показал, что для UDF задана стоимость 0%, а производительность была ужасной (ожидаемое поведение). Затем уровень совместимости базы данных был переключен на 150 (это все, что требуется для включения этой новой функции оптимизации), запрос был выполнен снова, UDF был встроен, и производительность значительно улучшилась.
Вот тут и стало интересно. В качестве теста уровень совместимости базы данных был установлен обратно на 140, но план запроса продолжал встраивать UDF.Любопытный. Очистка кеша планов не повлияла на результат (хотя мы знали, что в этом нет необходимости). Обнаружили ли мы ошибку в предварительной версии SQL Server 2019? В конце концов, это была CTP 2.2, и с тех пор (на момент написания) CTP 2.5 уже доступен.
Я взял ноутбук Пинала и снова выполнил запрос, убедившись, что для AdventureWorks установлен уровень 140, и включил параметр «Фактический план выполнения». Разумеется, повторный запуск показал, что оператор SELECT с самого начала использовал оценщик мощности версии 150, который встраивал UDF.Как могло случиться, что AdventureWorks был установлен на 140, но с использованием новых 150-уровневых улучшений?
Именно тогда мы с Пиналем посмотрели друг на друга, посмотрели на экран, затем снова друг на друга. Точно в то же время мы поняли, что UDF был создан в TempDB. По умолчанию эта база данных работает на том же уровне совместимости, что и установленный экземпляр. Таким образом, хотя для AdventureWorks было установлено значение 140, в демонстрации использовалась UDF, созданная в другой базе данных, работающей на уровне совместимости 150.
Мораль этой истории — ничего не предполагать, и если вы думаете, что нашли ошибку в SQL Server — даже если это предварительная версия — шансы на это невелики. Это также изящный трюк, если вы хотите воспользоваться преимуществами встроенных UDF, но не можете изменить режим совместимости пользовательской базы данных.
Оставляйте свои мысли в комментариях ниже.
Фотография Эмили Мортер на Unsplash.
Нравится:
Нравится Загрузка …
Функция Python, которая обрабатывает скаляр или массивы
«функция, которая может принимать скалярные числа с плавающей запятой или несколько векторов (одномерный массив) и возвращать скаляр, одномерный массив или двумерный массив»
Так
скаляр => скаляр
1д => 2д
что дает 1-мерный массив?
def func (xa, ya):
def something_complicated (x, y):
вернуть x + y
пытаться:
xy = np.
нули ((len (xa), len (ya)))
для j в диапазоне (len (ya)):
для i в диапазоне (len (xa)):
xy [i, j] = что-то_сложное (xa [i], ya [i])
кроме TypeError:
xy = что-то_сложное (xa, ya)
вернуть ху
Это «быстро, элегантно и питонично»?
Это определенно «питоническое». «try / except» очень питонический. Так определяется функция внутри другой функции.
Быстро? Только тесты времени покажут. Это может зависеть от относительной частоты скаляра v.примеры массивов.
Элегантный? Это в глазах смотрящего.
Это более элегантно? Это ограниченная рекурсия
def func (xa, ya):
пытаться:
shape = len (xa), len (ya)
кроме TypeError:
# сделать что-нибудь сложное
вернуть xa + ya
xy = np.zeros (форма)
для j в диапазоне (len (ya)):
для i в диапазоне (len (xa)):
xy [i, j] = func (xa [i], ya [i])
вернуть ху
Если вам нужно правильно обрабатывать входные данные 2d +, то векторизация
явно является решением с наименьшими усилиями:
def something_complicated (x, y):
вернуть x + y
vsomething = np.
векторизовать (что-то сложное)
В [409]: vsomething ([1,2], [4,4])
Выход [409]: массив ([5, 6])
В [410]: vsomething (1,3)
Out [410]: array (4) # не совсем скаляр
Если массив (4)
— это не результат скалярного
, который вам нужен, то вам придется добавить тест и извлечь значение с помощью [()]
. vectorize
также обрабатывает смесь скаляра и массива (скаляр + 1d => 1d).
MATLAB не имеет скаляров. size (3)
возвращает 1,1
.
В Javascript [1,2,3]
имеет атрибут .length
, а 3
— нет.
из сеанса nodejs
:
> x.length
неопределенный
> х = [1,2,3]
[1, 2, 3]
> x.length
3
Что касается кода MATAB, Octave может сказать следующее о функции длины
— Встроенная функция: длина (A) Возвращает длину объекта A.
Длина 0 для пустых объектов, 1 для скаляров, а количество элементы для векторов.
Для матричных объектов длина — это число строк или столбцов, в зависимости от того, что больше (это нечетное определение используется для совместимости с MATLAB).
MATLAB не имеет истинных скаляров. Все как минимум 2д. «Вектор» просто имеет размерность «1». Длина
— плохой выбор для управления итерациями в MATLAB. Я всегда использовал размер
.
Чтобы добавить к удобству MATLAB, но также к потенциальной путанице, x (i)
работает как с «векторами» строк, так и с «векторами» столбцов, [1,2,3]
и [1; 2; 3 ]
. x (i, j)
также работает с обоими, но с разными диапазонами индексов.
len
отлично работает при итерации списков Python, но не лучший выбор при работе с массивами numpy. x.size
лучше, если вы хотите общее количество элементов. x.shape [0]
лучше, если вам нужно 1-е измерение.
Отчасти причина того, что у вашей проблемы нет элегантного Pythonic-решения, заключается в том, что вы начинаете с некоторого идиоматического MATLAB и ожидаете, что Python будет вести себя со всеми теми же нюансами.
физических скаляров и инструментов построения графиков в Scala — анонс
Спасибо, Андре. Мой подход к проблеме — результат моей работы в области автоматизации управления воздушным движением. Меня беспокоило, что скалярные физические величины обычно представляются в виде чисел без явных единиц. Я видел ошибки, когда минуты ошибочно принимают за секунды, градусы — за радианы и так далее. Иногда эти ошибки не обнаруживаются долгое время — например, после публикации исследовательской работы — упс! (Я имею в виду здесь своего коллегу, конечно, не меня!) Изначально я разработал свой подход на Python, а затем повторно реализовал его на Scala несколько лет назад.
Это интересная работа, которую вы проделали 20 лет назад. Я просмотрел вашу статью и, возможно, позже рассмотрю ее поближе. Было бы неплохо иметь физические измерения, представленные в виде типов и проверок совместимости во время компиляции, но это очень сложно и выходит за рамки моего уровня знаний.
Джеспер Норденберг имел это в своем пакете Metascala несколько лет назад. Как бы блестяще он ни использовал систему типов Scala, его подход оставлял желать лучшего. Несмотря на то, что проверки совместимости модулей были выполнены компилятором, производительность во время выполнения все еще была очень низкой (более чем в 20 раз по IIRC).Более того, реальные физические единицы, казалось, были секретом, известным только компилятору. Я не мог понять, как заставить его печатать информацию о блоке.
У моего подхода есть ограничения, но я уверен, вы согласитесь, что он предпочтительнее сырых безразмерных чисел.
Мой подход не мешает пользователю, например, определять несколько базовых единиц длины. Я полагаю, это действительно можно рассматривать как особенность. (В какой-то момент я подумал об определении отдельных единиц длины для горизонтального расстояния и высоты, поскольку они редко комбинируются в УВД, но на самом деле я этого никогда не делал.)
Одна из наиболее распространенных ошибок в инженерных и научных вычислениях заключается в ошибочном принятии степеней за радианы. Используя мою схему, можно написать sin (30 * deg), чтобы получить sin 30 градусов. Это, конечно, просто удобный способ выполнить стандартное преобразование, которое обычно выполняется, но о котором часто забывают. Некоторое время назад я решил, что триггерные функции должны отклонять любой аргумент, который явно не преобразован в радианы. Но радианы безразмерны, и попытка навязать для него именованную единицу вызвала другие проблемы (связанные с неявным преобразованием Double в безразмерный скаляр).В конце концов я отказался от этой попытки заставить пользователя явно преобразовать аргументы триггера в радианы.
В любом случае, дайте мне знать, если у вас есть другие предложения или идеи.
Сделайте так, чтобы ваши скалярные UDF работали быстрее без изменения кода
На протяжении многих лет вы, вероятно, слышали или слышали, что использование пользовательских функций (UDF) плохо масштабируется, поскольку количество обрабатываемых строк становится все больше и больше. Это очень плохо, потому что все мы слышали, что инкапсуляция вашего кода в модули способствует повторному использованию кода и является хорошей практикой программирования.Теперь команда Microsoft SQL Server добавила новую функцию в ядро базы данных в базе данных SQL Azure и SQL Server 2019, которая позволяет масштабировать производительность UDF при обработке больших наборов записей. Эта новая функция известна как T-SQL Scalar UDF Inlining .
T-SQL Scalar UDF Inlining — одна из многих новых функций для повышения производительности, представленных в базе данных SQL Azure и SQL Server 2019. Эта новая функция содержит множество параметров, доступных в наборе функций Intelligent Query Processing (IQP). .На рисунке 1 из Интеллектуальной обработки запросов в базах данных SQL показаны все функции IQP, представленные в базе данных SQL Azure и SQL Server 2019, а также функции, которые изначально были частью набора функций адаптивной обработки запросов, который был включен в более старое поколение базы данных SQL Azure. и SQL Server 2017.
Рисунок 1: Интеллектуальная обработка запросов
Функция T-SQL Scalar UDF Inlining автоматически масштабирует код UDF без внесения каких-либо изменений в код.Все, что необходимо, — это запускать ваш UDF в базе данных в базе данных SQL Azure или SQL Server 2019, где для базы данных установлен уровень совместимости 150. Позвольте мне подробнее остановиться на деталях новой функции встраивания.
Скалярное встраивание UDF T-SQL
Новая функция T-SQL Scalar UDF Inlining автоматически изменит способ интерпретации, стоимости и выполнения запросов T-SQL ядром базы данных, когда задействована скалярная UDF. Microsoft включила структуру FROID в ядро базы данных, чтобы улучшить способ обработки скалярных UDF.Эта новая структура преобразовывает императивный скалярный код UDF в реляционные алгебраические выражения и автоматически включает эти выражения в вызывающий запрос.
Реорганизуя скалярный код UDF, ядро базы данных может улучшить оптимизацию запроса на основе затрат, а также выполнить оптимизацию на основе наборов, которая позволяет коду UDF работать параллельно, если это необходимо. Рефакторинг скалярных UDF выполняется автоматически, когда база данных работает на уровне совместимости 150. Прежде чем я углублюсь в новую функцию встраивания скалярных UDF, позвольте мне рассмотреть, почему скалярные UDF по своей сути медленные, и обсудить различия между императивным и реляционным эквивалентным кодом.
Почему скалярные функции UDF по своей сути медленные?
При запуске UDF средства масштабирования в базе данных с уровнем совместимости менее 150 они просто плохо масштабируются. Под масштабом я имею в виду, что они отлично работают для нескольких строк, но работают все медленнее и медленнее, поскольку количество обрабатываемых строк становится все больше и больше. Вот некоторые из причин, по которым скалярные UDF не работают с большими наборами записей.
- Когда в операторе T-SQL используется скалярная функция, оптимизатор механизма базы данных не смотрит на код внутри скалярной функции, чтобы определить ее стоимость.Это связано с тем, что скалярные операторы не оцениваются, тогда как реляционные операторы рассчитываются.
Оптимизатор рассматривает скалярные функции как черный ящик, который использует минимальные ресурсы. Поскольку скалярные операции не рассчитываются должным образом, оптимизация печально известна созданием очень плохих планов, когда скалярные функции выполняют дорогостоящие операции.
- Скалярная функция оценивается как пакет операторов, где каждый оператор запускается последовательно один оператор за другим. Из-за этого каждый оператор имеет свой собственный план выполнения и запускается изолированно от других операторов в UDF, и поэтому не может использовать оптимизацию между операторами.
- Оптимизация не позволит запросам, использующим скалярную функцию, выполняться параллельно. Имейте в виду, что параллелизм может улучшить не все запросы, но когда в запросе используется скалярная UDF, план выполнения этого запроса не будет параллельным.
Императивный и относительный эквивалентный код
Скалярные UDF — отличный способ разбить ваш код на модули для повторного использования, но слишком часто они содержат процедурный код. Процедурный код может содержать императивный код, такой как объявления переменных, структуры
IF / ELSE
, а также цикл WHILE
.Императивный код легко писать и читать, поэтому императивный код так широко используется при разработке кода для приложений.
Проблема с императивным кодом заключается в том, что его сложно оптимизировать, и поэтому производительность запросов страдает при выполнении императивного кода. Производительность императивного кода хорошая, когда задействовано небольшое количество строк, но по мере увеличения количества строк производительность начинает падать. По этой причине вы не должны использовать их для больших наборов записей, если они выполняются в базе данных, работающей с совместимостью менее 150.С появлением версии 15.x SQL Server проблема масштабирования, связанная с UDF, была решена путем рефакторинга императивного кода с использованием нового метода оптимизации, известного как структура FROID.
Инфраструктура FROID преобразовывает императивный код в один реляционный эквивалентный запрос. Он делает это путем анализа скалярного императивного кода UDF и затем преобразует блоки императивного кода в реляционные эквивалентные алгебраические выражения. Затем эти реляционные выражения объединяются в один оператор T-SQL с помощью операторов APPLY.Кроме того, платформа FROID ищет избыточный или неиспользуемый код и удаляет его из окончательного плана выполнения запроса. Преобразуя императивный код в скалярной UDF в повторно факторизованные реляционные выражения, оптимизатор запросов может выполнять операции на основе наборов и использовать параллелизм для повышения производительности скалярной UDF. Чтобы лучше понять разницу между императивным кодом и реляционным эквивалентным кодом, позвольте мне показать вам пример.
Листинг 1 содержит некоторый императивный код.Просматривая этот листинг, вы можете увидеть, что он включает пару операторов DECLARE
и некоторую логику IF / ELSE.
Листинг 1: Пример императивного кода
DECLARE @Sex varchar (10) = ‘Женский’; DECLARE @SexCode int; IF @Sex = ‘Female’ SET @SexCode = 0 ELSE IF @Sex = ‘Male’ SET @SexCode = 1; ELSE SET @SexCode = 2; ВЫБРАТЬ @SexCode AS SexCode; |
Затем я реорганизовал код из листинга 1 в реляционный эквивалентный одиночный оператор SELECT
из листинга 2, во многом так же, как структура FROID может сделать это при компиляции скалярной UDF.
Листинг 2: Пример кода отношения
ВЫБРАТЬ B.SexCode FROM (ВЫБРАТЬ «Женский» как пол) A ВНЕШНИЙ ПРИМЕНИТЬ (ВЫБРАТЬ СЛУЧАЙ, КОГДА A.Sex = «Женский», ЗАТЕМ 0 КОГДА A.Sex = «Мужской» ТО 1 ELSE 2 END AS SexCode) AS B; |
Глядя на эти два примера, вы можете увидеть, насколько легко прочитать императивный код в листинге 1, чтобы увидеть, что происходит.В то время как в листинге 2, который содержит реляционный эквивалентный код, требуется немного больше анализа / обзора, чтобы точно определить, что происходит.
- В настоящее время фреймворк FROID может переписывать следующие скалярные конструкции кодирования UDF в реляционные алгебраические выражения:
- Объявление и присвоение переменных с помощью оператора
DECLARE
илиSET
- Несколько присвоений переменных в операторе
SELECT
- Условное тестирование с использованием логики
IF / ELSE
- Один или несколько
RETURN
выписки - Вложенные / рекурсивные вызовы функций в UDF
- Операции отношения, такие как
EXISTS
иISNULL
Два листинга, представленные в этом разделе, только логически демонстрируют, как инфраструктура FROID может преобразовать императивный код UDF в реляционный эквивалентный код с помощью инфраструктуры FROID. Для получения более подробной информации о фреймворке FROID я предлагаю вам прочитать этот технический документ.
Чтобы увидеть оптимизацию FROID в действии, позвольте мне показать вам пример, в котором сравнивается производительность скалярной UDF, работающей с оптимизацией FROID и без нее.
Сравнение производительности скалярного UDF с оптимизацией FROID и без нее
Чтобы проверить, как скалярная UDF будет работать с оптимизацией FROID и без нее, я проведу тест с использованием образца базы данных WorldWideImportersDW (скачать здесь).В этой базе данных я создам скалярную UDF с именем GetRating . Код этой UDF можно найти в Листинге 3.
Листинг 3: Скалярная UDF, содержащая императивный код
СОЗДАТЬ ИЛИ ИЗМЕНИТЬ ФУНКЦИЮ dbo.GetRating (@CityKey int) RETURNS VARCHAR (13) AS BEGIN DECLARE @AvgQty DECIMAL (5,2); DECLARE @Rating VARCHAR (13); SELECT @AvgQty = AVG (CAST (Количество AS DECIMAL (5,2))) FROM Fact. ГДЕ [Ключ города] = @CityKey; IF @AvgQty / 40> = 1 SET @Rating = ‘Выше среднего’; ELSE SET @Rating = «Ниже среднего»; ВОЗВРАТ @ Рейтинг КОНЕЦ |
Изучив код в листинге 3, вы увидите, что я создаю свою скалярную UDF, которую буду использовать для тестирования. Эта функция вычисляет рейтинг для значения [City Key] . Возвращаемый рейтинг — «Выше среднего» или «Ниже среднего» на основе 40 — среднего рейтинга.Обратите внимание, что этот UDF содержит императивный код.
Чтобы проверить, как скалярное встраивание может улучшить производительность, я буду запускать код из листинга 4.
Листинг 4: Код для проверки производительности скалярной UDF
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 18 | — Включить статистику времени УСТАНОВИТЬ СТАТИСТИКУ ВРЕМЕНИ; GO USE WideWorldImportersDW; GO — Установить уровень совместимости 140 ALTER DATABASE WideWorldImportersDW SET COMPATIBILITY_LEVEL = 140; GO — Тест 1 SELECT DISTINCT ([City Key]), dbo. FROM Dimension. [City] — Установите уровень совместимости на 150 ALTER DATABASE WideWorldImportersDW SET COMPATIBILITY_LEVEL = 150; GO — Тест 2 SELECT DISTINCT ([City Key]), dbo.GetRating ([City Key]) AS CityRating FROM Dimension. [City] GO |
Код в листинге 4 выполняет два теста. Первый тест (Тест 1) вызывает масштабатор UDF dbo.GetRating с использованием уровня совместимости 140 (SQL Server 2017). Для второго теста (Тест 2) я только изменил уровень совместимости на 150 (SQL Server 2019) и запустил тот же UDF, что и Тест 1, без внесения каких-либо изменений в кодировку UDF.
Когда я запускаю Тест 1 в листинге 4, я получаю статистику выполнения, показанную на рисунке 2, и план выполнения, показанный на рисунке 3.
Рисунок 2: Статистика выполнения для теста 1
Рисунок 3: План выполнения при использовании уровня совместимости 140 с использованием теста 1
Перед просмотром статистики времени и плана выполнения для Теста 1 позвольте мне запустить Тест 2. Статистику времени и план выполнения для теста 2 можно найти на рисунках 4 и 5 соответственно.
Рисунок 4: Статистика выполнения для теста 2
Рисунок 5: План выполнения при использовании уровня совместимости 150 с использованием теста 2
Сравнение производительности между тестом 1 и тестом 2
Единственное изменение, которое я сделал между тестом 1 и тестом 2, — это изменение уровня совместимости со 140 на 150. Позвольте мне рассмотреть, как оптимизация FROID изменила план выполнения и повысила производительность, когда я выполнил свой тест с уровнем совместимости 150.
Перед запуском двух разных тестов я включил время статистики. На рисунке 6 сравнивается временная статистика двух разных тестов.
Рисунок 6: ЦП и сравнение прошедшего времени между тестом 1 и тестом 2
Как вы можете видеть, когда я выполнил оператор SELECT из листинга 4, используя уровень совместимости 140, процессор и прошедшее время заняли немногим более 30 секунд. В то время как, когда я изменил уровень совместимости на 150 и выполнил инструкцию Test 2 SELECT в листинге 4, мой процессор и прошедшее время использовали чуть более 1 секунды каждый.Как вы можете видеть, Тест 2, который использовал уровень совместимости 150 и структуру FROID, работал на порядок быстрее, чем Список 1, который выполнялся при совместимости 140 без оптимизации структуры FROID. Улучшение, которое я получил с помощью инфраструктуры FRIOD и уровня совместимости 150, позволило добиться этого повышения производительности без изменения ни одной строчки кода в моей тестовой скалярной UDF. Чтобы лучше понять, почему сравнения времени между этими двумя выполнениями одного и того же оператора SELECT были столь разительно разными, позвольте мне рассмотреть планы выполнения, созданные каждым из этих тестовых запросов SELECT.
Если вы посмотрите на рисунок 3, вы увидите простой план выполнения, когда оператор SELECT выполнялся в режиме совместимости 140. Этот план выполнения не шел параллельно и включает только два оператора. Вся работа, связанная с подсчетом рейтинга города в UDF, с использованием данных в Факт . Таблица [Заказ] не включена в этот план выполнения. Чтобы получить рейтинг для каждого города, моей скалярной функции пришлось запускать несколько раз, по одному для каждого значения [City Key] , найденного в измерении .[Город] стол. Вы не можете увидеть это в плане выполнения, но если вы отслеживаете запрос с помощью расширенного события, вы можете это проверить. Каждый раз, когда ядру базы данных необходимо вызвать мою UDF в тесте 1, должно происходить переключение контекста. Из-за того, что при многократном вызове моей UDF по принципу построчной операции запрос в тесте 1 выполняется медленно.
Если мы посмотрим на план выполнения на рисунке 5, который относится к тесту 2, вы увидите совсем другой план по сравнению с тестом 1. Когда оператор SELECT в тесте 2 был запущен, он выполнялся с уровнем совместимости 150, что позволяло скалярная функция для встраивания. Путем встраивания скалярной функции оптимизация FROID преобразовала мою скалярную UDF в реляционную операцию, которая позволила включить мою логику UDF в план выполнения вызывающего оператора SELECT. Таким образом, ядро базы данных смогло вычислить значение рейтинга для каждого [City Key] с помощью операции на основе наборов, а затем объединить значение рейтинга со всеми городами в измерении . [City] table using операция вложенного цикла внутреннего соединения. Выполняя эту операцию на основе набора в Тесте 2, мой запрос выполняется значительно быстрее и использует меньше ресурсов, чем построчный характер моего запроса Теста 1.
Не все скалярные функции могут быть встроены
Не все скалярные функции могут быть встроены. Если скалярная функция содержит методы кодирования, которые не могут быть преобразованы в реляционные алгебраические выражения с помощью среды FRIOD, тогда ваша UDF не будет встроена. Например, если скалярная UDF содержит цикл WHILE, то скалярная функция не будет встроена. Чтобы продемонстрировать это, я собираюсь изменить свой исходный код UDF, чтобы он содержал фиктивный цикл
WHILE
. Мой новый UDF называется dbo.GetRating_Loop и его можно найти в листинге 5.
Листинг 5: Скалярная UDF, содержащая цикл WHILE
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 18 19 20 21 | СОЗДАТЬ ИЛИ ИЗМЕНИТЬ ФУНКЦИЮ dbo.GetRating_Loop (@CityKey int) RETURNS VARCHAR (13) AS BEGIN DECLARE @AvgQty DECIMAL (5,2); DECLARE @Rating VARCHAR (13); — фиктивный код для поддержки цикла WHILE DECLARE @I INT = 0; WHILE @I <1 BEGIN SET @I = @I + 1; END SELECT @AvgQty = AVG (CAST (Количество AS DECIMAL (5,2))) FROM Fact. WHERE [City Key] = @CityKey; IF @AvgQty / 40> = 1 SET @Rating = ‘Выше среднего’; ELSE SET @Rating = «Ниже среднего»; ВОЗВРАТ @ Рейтинг КОНЕЦ |
Просматривая код в листинге 5, вы видите, что я добавил фиктивный цикл WHILE
в верхнюю часть моей исходной UDF.Когда я запускаю этот код, используя код из листинга 6, я получаю план выполнения, показанный на рисунке 7.
Листинг 6: Код для запуска dbo.GetRating_Loop
USE WideWorldImportersDW; GO — Установите уровень совместимости на 150 ALTER DATABASE WideWorldImportersDW SET COMPATIBILITY_LEVEL = 150; GO — Тест UDF с циклом WHILE SELECT DISTINCT ([City Key]), dbo.GetRating_Loop ([City Key]) AS CityRating FROM Dimension. [City] GO |
Рисунок 7: План выполнения, созданный во время выполнения Листинг 6.
Посмотрев на план выполнения на рисунке 7, вы увидите, что моя новая UDF не была встроена. План выполнения для этого теста очень похож на план выполнения, который я получил, когда запустил свою исходную UDF в листинге 3 на уровне совместимости базы данных 140. Этот пример показывает, что не все скалярные функции UDF будут встроены.Только те скалярные UDF, которые используют только функциональные возможности, поддерживаемые платформой FRIOD, будут встроенными.
Отключение встраивания скалярных UDF
С этой новой версией SQL Server команда разработчиков хотела убедиться, что вы можете отключить любые новые функции на уровне базы данных или уровне операторов. Следовательно, вы можете использовать код из листинга 6 или 7, чтобы отключить встраивание скалярных UDF. В листинге 6 показано, как отключить встраивание скалярных UDF на уровне базы данных.
Листинг 6: Отключение встраивания на уровне базы данных
ALTER DATABASE SCOPED CONFIGURATION SET TSQL_SCALAR_UDF_INLINING = OFF; |
В листинге 7 показано, как отключить встраивание скаляров при создании скалярной UDF.
Листинг 7: Отключение при определении UDF
CREATE FUNCTION dbo.MyScalarUDF (@Parm int) RETURNS INT WITH INLINE = OFF … |
Сделайте ваш скалярный UDF быстрее, используя SQL Server версии 15.x
Если вы хотите ускорить работу Scalar UDF без каких-либо изменений в коде, тогда SQL Server 2019 для вас.В этой новой версии SQL Server была добавлена структура FROID. Эта структура выполнит рефакторинг скалярной функции UDF в реляционный эквивалентный код, который можно будет поместить непосредственно в план выполнения вызывающего оператора. Таким образом, скалярная UDF превращается в операцию на основе набора, а не вызывается для каждой строки-кандидата. Все, что нужно для рефакторинга скалярной UDF, — это установить для вашей базы данных уровень совместимости 150.
.