Каково различие между Представлениями и Осуществленными Представлениями в Oracle?

Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.

Например, ниже - класс ученика, который будет использовать его в нашем коде.

public class Student {

    private int id;

    public int getId() {
        return this.id;
    }

    public setId(int newId) {
        this.id = newId;
    }
}

Приведенный ниже код дает вам исключение с нулевым указателем.

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}

Поскольку вы используете Obj_Student, но вы забыли инициализировать его, как в правильном коде, показанном ниже:

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student = new Student();
            obj_Student.setId(12);
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}
334
задан Daniel Heilper 24 December 2018 в 09:58
поделиться

6 ответов

Осуществленные представления являются находящимися на диске и периодически обновляются основанные на определении запроса.

Представления являются виртуальными только и выполняют определение запроса каждый раз, когда к ним получают доступ.

344
ответ дан WAF 23 November 2019 в 00:43
поделиться

Представления

Они оценивают данные в таблицах, лежащих в основе определения представления в то время, когда представление запрашивается . Это - логическое представление Ваших таблиц без данных, хранивших где-либо еще.

позитивный аспект представления - то, что оно будет всегда возвращать последние данные Вам . оборотная сторона представления - то, что его производительность зависит от того, насколько хороший избранный оператор представление на основе. Если избранный оператор, используемый представлением, присоединяется ко многим таблицам или использует соединения на основе неиндексированных столбцов, представление могло работать плохо.

Осуществленные представления

Они подобны регулярным представлениям, в этом они - логическое представление Ваших данных (на основе избранного оператора), однако, , базовый набор результата запроса был сохранен к таблице . Позитивный аспект этого - то, что при запросах осуществленного представления, Вы запрашиваете таблицу , которая может также быть индексирована.

, Кроме того, потому что все соединения были разрешены в осуществленное время обновления представления, Вы платите цену соединения однажды (или так часто, как Вы обновляете свое осуществленное представление), а не каждый раз, когда Вы выбираете из осуществленного представления. Кроме того, с включенной перезаписью запроса, Oracle может оптимизировать запрос, который выбирает из источника Вашего осуществленного представления таким способом, которым это вместо этого читает из Вашего осуществленного представления. В ситуациях, где Вы создаете осуществленные представления как формы таблиц-агрегатов, или как копии часто выполняемых запросов, это может значительно ускорить время отклика Вашего приложения конечного пользователя. оборотная сторона, хотя то, что данные Вы возвращаетесь из осуществленного представления, только так же актуальна как в прошлый раз, когда осуществленное представление было обновлено .

<час>

Осуществленные представления могут быть установлены обновиться вручную в расписании набора, или на основе базы данных, обнаруживающей изменение в данных из одной из базовых таблиц . Осуществленные представления могут быть инкрементно обновлены путем объединения их с осуществленными журналами представления, который действие как источники сбора данных изменения на базовых таблицах.

Осуществленные представления чаще всего используются в организации хранилищ данных / приложения бизнес-аналитики, где запросы больших таблиц фактов с тысячами миллионов строк закончились бы во время отклика запроса, которое привело к неприменимому приложению.

<час>

Осуществленные представления также помогают гарантировать последовательный момент вовремя, подобный изоляция снимка .

323
ответ дан 3 revs, 2 users 55% 23 November 2019 в 00:43
поделиться

Представление использует запрос для получения по запросу данных из базовых таблиц.

А осуществился, представление является таблицей на диске, который содержит набор результатов запроса.

Осуществленные представления, прежде всего, используются для увеличения производительности приложения, когда это не выполнимо или желательно использовать стандартное представление с индексами, относился к нему. Осуществленные представления могут быть обновлены регулярно или через триггеры или при помощи ON COMMIT REFRESH опция. Это действительно требует нескольких дополнительных полномочий, но это - ничего сложного. ON COMMIT REFRESH существовал с тех пор, по крайней мере, Oracle 10.

49
ответ дан Jeremiah Peschka 23 November 2019 в 00:43
поделиться

Представления являются чрезвычайно логическими подобными таблице структурами, заполненными на лету данным запросом. Результаты запроса представления не хранятся нигде на диске, и представление воссоздается каждый раз, когда запрос выполняется. Осуществленные представления являются фактическими структурами, сохраненными в базе данных и записанными в диск. Они обновляются на основе параметров, определенных, когда они создаются.

20
ответ дан user12786 23 November 2019 в 00:43
поделиться

Добавление к симпатично-полному ответу Mike McAllister...

Осуществленные представления могут только быть установлены обновиться автоматически через изменения обнаружения базы данных, когда запрос представления считает простым компилятор. Если это будут считать слишком сложным, это не будет в состоянии настроить то, что является чрезвычайно внутренними триггерами для отслеживания изменений в исходных таблицах, чтобы только обновить измененные строки в mview таблице.

при создании осуществленного представления Вы найдете, что Oracle создает и mview и как таблицу с тем же именем , который может сделать вещи, путающие.

2
ответ дан Stew S 23 November 2019 в 00:43
поделиться

Осуществленные представления являются логическим представлением управляемых данными запросом Select, но результат запроса будет сохранен в таблице или диске, также определение запроса также сохранит в базе данных.

выполнение представления Materialized это лучше, чем нормальное Представление, потому что данные осуществленного представления будут храниться в таблице, и таблица может быть индексирована поэтому быстрее для присоединения также присоединяющийся, сделан во время осуществленного времени обновления представлений так никакая потребность к каждому разу оператор соединения огня как в случае представления.

Другое различие включает в случае Представления, мы всегда получаем последние данные, но в случае представления Materialized мы должны обновить представление для получения последних данных. В случае представления Materialized нам нужны дополнительный триггер или некоторый автоматический метод так, чтобы мы могли сохранить мВ обновленным, это не требуется для представлений в базе данных.

0
ответ дан 23 November 2019 в 00:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: