Русские Блоги
Учебник по использованию для начинающих PLSQL Developer (графический учебник) (воспроизведено)
PLSQL Developer — это инструмент разработки баз данных Oracle. Он очень хороший и простой в использовании. PLSQL Developer очень мощный. Он может использоваться как встроенный отладчик. Он имеет окно SQL, окно команд, браузер объектов и оптимизацию производительности. Ниже кратко описывается, как Использование инструментов разработчика PLSQL, учебник для начинающих.
1. Основные операции
1) Убедитесь, что у вас есть база данных Oracle или сервер Oracle, прежде чем вы сможете использовать PLSQL Developer для подключения к базе данных.
2) Запустите PLSQL Developer, войдите в учетную запись пользователя oracle и подключитесь (подробности здесь не описаны, как настроить tnsname.ora)
3) После успешного входа в систему вы можете войти в интерфейс окна браузера объекта.
4) Выберите «мой объект» в браузере объектов, здесь есть SCOTT (все объекты текущего пользователя).
5) Найдите папку с таблицами, в которой содержатся все таблицы текущего аккаунта.
2. Просмотр формы
1) Выберите таблицу, которую вы хотите просмотреть — «Щелкните правой кнопкой мыши» и выберите «Запрос данных», чтобы просмотреть данные.
3. Окно использования
1) New-> Select sql window, чтобы открыть окно sql
2). Введите оператор SQL в окне SQL, выберите все и нажмите Выполнить, чтобы просмотреть результаты. Функция очень мощная
4. Редактировать таблицу
1). Выберите таблицу — «Правой кнопкой мыши -» Редактировать (Edit), вы можете редактировать таблицу.
Developing and Debugging PL/SQL using Oracle SQL Developer
This tutorial shows you how to create, run, and debug a PL/SQL procedure using Oracle SQL Developer.
Time to Complete
Approximately 30 minutes.
Overview
Oracle SQL Developer is a free graphical tool that enhances productivity and simplifies database development tasks. With Oracle SQL Developer, you can browse database objects, run SQL statements and SQL scripts, and edit and debug PL/SQL statements. You can also run any number of provided reports, as well as create and save your own. This tutorial focuses on creating, compiling, running and debugging PL/SQL.
Prerequisites
Before starting this tutorial, you should:
- Install Oracle SQL Developer 2.1 early adopter from OTN here. Follow the readme instructions here.
- Install the Oracle Database 10g and later.
- Unlock the HR user. Login to SQL*Plus as the SYS user and execute the following command:
alter user hr identified by hr account unlock; - Download and unzip the plsql_debug.zip file that contains all the files you need to perform this tutorial.
Creating a Database Connection
To create a database connection, perform the following steps:
Open SQL Developer.
In the Connections tab, right-click Connections and select New Connection.
Enter the following and click Test:
Connection Name: hr_orcl
Username: hr
Password: hr
Select Save Password checkbox
Hostname: localhost
Port: 1521
SID: orcl
The status of the connection was tested successfully. The connection was not saved however. To save the connection, click Connect.
Once the connection is saved, you will see the database in the list. When a connection is created, a SQL Worksheet is opened automatically. The SQL Worksheet allows you to execute SQL against the connection you just created. Expand the hr_orcl connection.
Browsing Your Database
The Connections Navigator in Oracle SQL Developer allows you to browse and edit database objects. This tutorial creates and debugs PL/SQL and uses a selection of tables from the HR schema. In this topic, you review the tables you will use later in the tutorial. Perform the following steps:
Expand the Tables node.
Click the EMPLOYEES table to view the table definition.
To see the data, click the Data tab.
The Employee data is displayed. Click the DEPARTMENTS table in the navigator.
There are a number of constraints for the DEPARTMENTS table. Select the Constraints tab.
Click the Edit icon.
The dialog has a number of tabs, select the Foreign Keys tab.
Review the Foreign Keys. Then click OK.
Verify that the JOBS and LOCATIONS tables exist, and have data, by selecting each in the Navigator in turn and reviewing the definitions and data.
Creating and Compiling a PL/SQL Procedure
In this topic you create, edit and compile a PL/SQL procedure. Perform the following steps:
Right-click on the Procedures node in the Connections Navigator, to invoke the context menu, and select NEW PROCEDURE.
Enter EMP_LIST as the procedure name. Then click the + to add a Parameter. Double-click on the parameter name to allow you to change the value to pMaxRows and then change VARCHAR2 to NUMBER. Click OK.
The procedure is created.
If the Grants tab is active, click the Code tab.
Replace the following PL/SQL:
With the following code:
(This code is also in the file emp_cursor.sql in the directory where you unzipped the files from the Prerequisites. )
Notice how the reserved words are formatted by Oracle SQL Developer. To format the code further, right-click to invoke the context menu and select Format SQL.
Compile the PL/SQL subprogram by clicking the Save button in the toolbar.
Compile errors, if any. are displayed.
By expanding Procedures on the navigator, EMP_LIST can be viewed.
Note that when an invalid PL/SQL subprogram is detected by Oracle SQL Developer, the status is indicated with a red X over the icon for the subprogram in the Connections Navigator.
Compilation errors are shown in the log window. You can navigate to the line reported in the error by simply double-clicking on the error. Oracle SQL Developer also displays errors and hints in the right hand gutter. If you hover over each of the red bars in the gutter, the error message displays.
In this case, the error messages indicate that there is a formatting error in the LOOP statement. After reviewing the code further, you see an extra parenthesis in the WHILE statement. Delete the extra parenthesis.
Click the Compile for Debug icon.
The procedure compiled successfully. You are now ready to run the procedure.
Note: If you still see a red X over the icon for your procedure under the procedures node, click the refresh icon. A green overlay indicates the procedure has been compiled for debugging. No additional overlay means the procedure has been compiled without additional debugging directives. These are controlled by preference settings and the compile droplist option. The default in SQL Developer is "Compile for Debug".
Running a PL/SQL Procedure
Once you have created and compiled a PL/SQL procedure, you can run it using Oracle SQL Developer. Perform the following steps:
Right-click on EMP_LIST in the left navigator and select Run.
This invokes the Run PL/SQL dialog. The Run PL/SQL dialog allows you to select the target procedure or function to run (useful for packages) and displays a list of parameters for the selected target. In the PL/SQL block text area, you will see the generated code that Oracle SQL Developer uses to call the selected program. You can use this area to populate parameters to be passed to the program unit and to handle complex return types.
Change PMAXROWS := NULL ; to PMAXROWS := 5; Then click OK.
The results are displayed in the Running — Log window.
Debugging a PL/SQL Procedure
Oracle SQL Developer also supports PL/SQL debugging with Oracle databases. In this topic, you debug a PL/SQL Procedure, step through the code and modify a value at runtime. Perform the following steps:
To assist with debugging, line numbers can be added to the Code window. Click on the margin and a Toggle Line Numbers tip will appear. Select it.
Set a breakpoint in the EMP_LIST procedure by clicking in the margin at the line with the OPEN emp_cursor; statement. Then click the Debug icon.
The Debug PL/SQL dialog should still show the value PMAXROWS = 5; Click OK.
Click the Log tab, if it is not already displayed.
The debugger should halt at the line where you placed the breakpoint. You can now control the flow of execution, modify values of variables and perform other debugging functions. Click Step Into .
Note: You have been granted DEBUG CONNECT SESSION and DEBUG ANY PROCEDURE user privileges to avoid the following error message when debugging.
This takes you to the first line of the cursor. Click Step Into again.
You should now be selecting the first row of the cursor. Click Step Into 3 more times.
Click the Data tab.
The Data window starts to show a limited list of variables which are used in the line of code that is about to be executed, and in the previously executed line.
Right-click the line that reads DBMS_OUTPUT.PUT_LINE(emp_tab(j).last_name); and select Run to Cursor.
Expand emp_tab >_ values > [1] > _value. You see the values of the fields in a given record of the table. Select the LAST_<name> field.
Right-click the LAST_<name> field and select Modify Value.
how to run pl/sql program in oracle sql developer
How can I execute above pl/sql program in Oracle SQL Developer. Can any one suggest me?
5 Answers 5
I have tried following the steps shown in this image. Some steps are excluded but I am sure you will understand when you encounter them.
If you do not see DBMS output just add
at the top and execute the statements as a script, you will see the output in «Script output» section.
Assuming you already have a connection configured in SQL Developer:
- from the View menu, select DBMS Output
- in the DBMS Output window, click the green plus icon, and select your connection
- right-click the connection and choose SQL worksheet
- paste your query into the worksheet
- run the query
First execute ‘set serveroutput on’ query in worksheet then check in View menu, DBMS output option will appear.
Surround your procedure code accordingly :
Hit the green arrow to compile — you should get the following message :
n.b.: env: Oracle 12g, Sql Developer v18.4
-
The Overflow Blog
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.3.11.43304
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.
Pl sql developer план запроса – “Знакомство Краткое описание Работа с SQL Developer Знакомство с SQL Запрос SELECT.”. Скачать бесплатно и без регистрации.
PLSQL Developer — Просмотр плана запроса в окне сессий
PLSQL Developer — Просмотр плана запроса в окне сессий
.
В окне сессий жмем на изображение ключа (Define Session Queris), в появившемся окне переходим на вкладку Details
.
.
Понимание результатов Execute Explain Plan в Oracle SQL Developer
Результат EXPLAIN PLAN – это отладочный вывод оптимизатора запросов Oracle. COST – это конечный результат оптимизатора затрат (CBO), целью которого является выбор того, какой из множества возможных планов должен использоваться для запуска запроса. CBO рассчитывает относительную стоимость для каждого плана, затем выбирает план с самой низкой стоимостью.
(Примечание: в некоторых случаях СВО не имеет достаточно времени, чтобы оценить каждый возможный план, в таких случаях он просто выбирает план с наименьшей стоимостью найденную до сих пор)
В общем, один из самых больших вкладчиками медленного запроса является количество строк, считанных для обслуживания запроса (точнее, блоков), поэтому стоимость будет основана на в части на количестве строк, которые должны быть прочитаны оценками оптимизатора.
Например, предположим, что у вас есть следующий запрос: (. Колонку months_of_service имеет NOT NULL ограничение на него и обычный индекс на нем)
Есть два основных планов оптимизатору может выбрать здесь:
-
План 1: Прочитайте все строки из таблицы «сотрудники», для каждого, проверить, если предикат истинен (
Представим себе, что таблица «сотрудники» имеет 1 000 000 (1 миллион) строк. Предположим далее, что значения для months_of_service варьируются от 1 до 12 и по какой-то причине довольно равномерно распределены.
Стоимость План 1, в котором используется ПОЛНЫЙ СКАНИРОВАНИЕ, будет стоить чтение всех строк в таблице сотрудников, что примерно равно 1 000 000; но поскольку Oracle часто может считывать блоки с использованием многоблочных чтений, фактическая стоимость будет ниже (в зависимости от того, как настроена ваша база данных) – например, давайте представим, что количество отсчетов с несколькими блоками равно 10 – расчетная стоимость полного сканирования составит 1,000,000/10; Общая стоимость = 100 000.
Стоимость плана 2, который включает в себя УКАЗАТЕЛЬ диапазон сканирования и просмотра таблицы по ROWID, будет стоимость сканирования индекса, плюс стоимость доступа к таблице с помощью ROWID. Я не буду вдаваться в то, как сканирование индексов диапазона стоит, но давайте представим, что стоимость сканирования диапазона индексов – 1 на строку; мы ожидаем найти совпадение в 1 из 12 случаев, поэтому стоимость сканирования индекса составляет 1,000,000/12 = 83,333; плюс стоимость доступа к таблице (предположим, что 1 блок считывается за доступ, мы не можем использовать многоблочные чтения здесь) = 83,333; Общая стоимость = 166 666.
Как вы можете видеть, стоимость плана 1 (полное сканирование) меньше, чем стоимость плана 2 (индексное сканирование + доступ по rowid) – это означает, что CBO будет выбирать ПОЛНОЕ сканирование.
Если предположения, сделанные здесь оптимизатором, верны, то на самом деле план 1 будет предпочтительным и намного более эффективным, чем План 2, – который опровергает миф о том, что ПОЛНЫЕ сканирования «всегда плохие».
Результаты будут совсем другими, если целью оптимизатора было FIRST_ROWS (n) вместо ALL_ROWS – в этом случае оптимизатор будет поддерживать план 2, потому что он будет часто возвращать первые несколько строк быстрее, ценой менее эффективной для всего запроса.
PL/SQL Developer. Выполнение запросов и редактирование данных. — Way23
Выполнение запросов
После подключения добавляем новое Sql-окно
Пишем запрос, нажимаем F8 или кнопку на панели инструментов и получаем таблицу — результат запроса.
Если в результате запроса возвращается много строк то сразу все они не загружаются. Загружаются столько строк сколько помещается на экране, для загрузки остальных строк становятся активны две кнопки
Чтобы загрузить все записи нужно нажать правую.
История запросов
Если отправить несколько запросов подряд то справа становятся доступны кнопки по которым можно переключатся по истории запросов. Кнопка «вверх» отобразит предыдущий отправленный запрос, а кнопка «вниз» следующий.
Экспорт результатов запроса
Часто результат запроса нужно экспортировать, для этого есть отдельная кнопка. Экспортировать можно в том числе в виде Sql скрипта который будет содержать insert’ы выбранных записей
Режим просмотра одиночной записи
В случае если в таблице много полей бывает полезен режим просмотра одиночной записи. В этом случае выводится таблица с двумя столбцами — название поля и значение. Переключение по записям происходит по кнопкам на панели инструментов.
Редактирование данных которые вернул запрос
Для того чтобы отредактировать записи которые попали в выборку, в запрос нужно добавить специальное поле rowid.
Теперь после нажатия на кнопку с замком, активируется режим редактирования, в котором доступны кнопки для добавления и удаления записей.
Редактирование осуществляется в самой таблице
Для сохранения изменений нужно нажать две кнопки — Post и Commit.
Откатить не зафиксированные изменения можно кнопкой Rollback
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
[sql-execution-plan] Понимание результатов Execute Explain Plan в Oracle SQL Developer [oracle-sqldeveloper]
Вывод EXPLAIN PLAN – это отладочный вывод оптимизатора запросов Oracle. COST – это конечный результат оптимизатора затрат (CBO), целью которого является выбор того, какой из множества возможных планов должен использоваться для запуска запроса. CBO рассчитывает относительную стоимость для каждого плана, затем выбирает план с самой низкой стоимостью.
(Примечание: в некоторых случаях у CBO не хватает времени для оценки всех возможных планов, в этих случаях он просто выбирает план с самой низкой стоимостью, найденной до сих пор)
В общем, одним из самых больших вкладов в медленный запрос является количество строк, считываемых для обслуживания запроса (точнее, блоков), поэтому стоимость будет частично зависеть от количества строк, которые будут оценены оптимизатором читать.
Например, скажем, у вас есть следующий запрос:
(В столбце months_of_service есть ограничение NOT NULL и обычный индекс на нем.)
Существует два основных плана, которые может выбрать оптимизатор здесь:
- План 1: Прочитайте все строки из таблицы «сотрудники», для каждого проверьте, является ли предикат истинным ( months_of_service=6 ).
- План 2: Прочитайте индекс, где months_of_service=6 (это приводит к набору ROWID), затем получите доступ к таблице на основе возвращенных ROWID.
Представим себе, что таблица «сотрудники» имеет 1 000 000 (1 миллион) строк. Предположим далее, что значения для months_of_service варьируются от 1 до 12 и по какой-то причине довольно равномерно распределены.
Стоимость Плана 1 , которая включает ПОЛНЫЙ СКАНИРОВАНИЕ, будет стоить для чтения всех строк в таблице сотрудников, что примерно равно 1 000 000; но поскольку Oracle часто может считывать блоки с использованием многоблочных чтений, фактическая стоимость будет ниже (в зависимости от того, как настроена ваша база данных) – например, предположим, что количество чтения с несколькими блоками равно 10 – расчетная стоимость полное сканирование будет 1 000 000/10; Общая стоимость = 100 000.
Стоимость Плана 2 , которая включает в себя сканирование индексов INDEX RANGE и поиск таблицы по ROWID, будет стоить сканирование индекса, а также затраты на доступ к таблице с помощью ROWID. Я не буду вдаваться в то, как сканирование индексов диапазона стоит, но давайте представим, что стоимость сканирования диапазона индексов – 1 на строку; мы ожидаем найти совпадение в 1 из 12 случаев, поэтому стоимость сканирования индекса составляет 1,000,000 / 12 = 83,333; плюс стоимость доступа к таблице (предположим, что 1 блок считывается за доступ, мы не можем использовать многоблочные чтения здесь) = 83,333; Общая стоимость = 166 666.
Как вы можете видеть, стоимость плана 1 (полное сканирование) меньше, чем стоимость плана 2 (индексная проверка + доступ по rowid), что означает, что CBO будет выбирать ПОЛНОЕ сканирование.
Если предположения, сделанные здесь оптимизатором, верны, то на самом деле план 1 будет предпочтительным и гораздо более эффективным, чем План 2, – который опровергает миф о том, что ПОЛНЫЕ сканирования «всегда плохие».
Результаты были бы совсем другими, если целью оптимизатора было FIRST_ROWS (n) вместо ALL_ROWS – в этом случае оптимизатор предпочтет план 2, потому что он будет часто возвращать первые несколько строк быстрее, ценой менее эффективной для всего запроса ,
oracle.notes: PL/SQL Developer session window
В окне списка сессий PL/SQL Developer (Tools -> Sessions) можно добавить кучу полезных вкладок, которые будут выполнять скрипты и запросы, получая любое значение из подсвеченной сессии в списке через :[ИМЯ_КОЛОНКИ v$session]. В настоящее время в стоковом PL/SQL Developer (версия 11) есть 5 вкладок:
Cursors
SQL Text
Statistics
Locks
Sql Monitor
Добавлять свои вкладки можно при помощи кнопки с гаечным ключиком -> Details
В настоящий момент я использую
План запроса dbms_xplan
Особое внимание /* concatenate */ из последней строчки – результат будет сцеплен в одно поле, его можно скопировать и вставить в другое окно для детального анализа.
План запроса из v$
SQL Workarea
Объем памяти, потребляемой сессией. Правда не очень часто пригождается
Таким способом достаточно удобно заниматься troubleshooting’ом, если известа сессия, которая испытывает проблемы. Очень удобный и мощный механизм.
oracle – Как оптимизировать запрос с помощью PL/SQL Developer?
У меня есть запрос
53 строк кода, и мне нужно его оптимизировать. У меня есть инструмент PL/SQL Developer 7.0 и как его использовать для оптимизации?
Я попытался использовать Explain Plan, но мне ничего не сказано. Я также добавил столбцы времени и времени, но нет ничего интересного, сначала пустое и второе всегда в одно и то же время.
Я попытался использовать тестовое окно, но есть процедура, для которой требуется вставка переменной, и поскольку мой запрос выбирает многие строки, я не могу его использовать.
Итак, вопрос в том, как я могу оптимизировать SQL-запрос с помощью PL/SQL Developer? Где я должен искать, чтобы получить время выполнения запроса для каждого подзапроса? Может быть, есть несколько гидов, но на данный момент я нашел только документацию, но мне не было полезно передо мной? Для моих текущих знаний невозможно оптимизировать такой большой запрос без каких-либо инструментов.
Запрос, требующий оптимизации:
Приемы работы с планами выполнения запросов в Oracle / Блог компании Embarcadero (Borland) / Хабр
Как и любой текст, запросы и программы на SQL можно создавать в любом текстовом редакторе. Но если вы профессионал, вы очень много и часто работаете с SQL, то вам уже не будет достаточно наличия подсветки синтаксиса и автоматического переформатирования кода, особенно, если вам приходится переключаться между различными версиями одной СУБД или разными платформами СУБД.
Недавно мне случилось общаться с одним из ведущих профессионалов СУБД Oracle. Он рассказал много интересного про работу с планами выполнения запросов в различных версиях этой СУБД и не постеснялся рассказать всем об используемых им инструментах, приемах и дать немного полезных мелких советов. Я сделал перевод одной из статей в его блоге и хотел бы предложить его вниманию Хабравчан. Несмотря на то, что описанный прием применялся для работы с Oracle, я теперь с успехом применяю тот же подход для MS SQL и Sybase.
Меня зовут Дан Хотка (Dan Hotka). Я директор Oracle ACE. Одной из моих привилегий в этой группе является помощь в распространении информации и полезных технических знаний, связанных с СУБД Oracle. Меня хорошо знают после моих 12 (скоро 14) опубликованных книг и буквально сотен статей. Я регулярно пишу в блоге и собираюсь делать это в дальнейшем. Мы даже могли встречаться на одном из событий или встреч группы пользователей. Я регулярно выступаю на эти темы по всему миру.
Я собираюсь поделиться с вами как техническими знаниями про Oracle, так и тем, как эти знания применяются в решениях Embarcadero.
Я скачал себе «большую тройку» продуктов Embarcadero: Rapid Sql, DBArtisan, DB PowerStudio. Сейчас я хотел бы рассказать о первом впечатлении и некоторых приемах работы с планами выполнения запросов в RapidSQL. (Я установил версию 8.6.1)
Я покажу пару приемчиков для планов выполнения запросов в и вокруг Rapid SQL.
Мне нравится инструмент. Конечно, это прекрасный инструмент, если у вас есть разные типы СУБД различных производителей, поскольку этот инструмент поддерживает около дюжины разных СУБД. Единый интерфейс для освоения всех БД! Мои приемчики относятся к Oracle. Но приемы для инструментов Embarcadero должны сработать вне зависимости от того, к какой СУБД вы подключились.
При просмотре планов выполнения я люблю видеть план выполнения и сам запрос одновременно.
Этого легко достигнуть.
Для начала, загрузите свой SQL запрос в окно редактора ISQL (используя кнопку Open), затем включите кнопку Explain Plan (отмечена в красном круге). Кнопка останется активированной.
Запустите запрос на выполнение, и появится закладка Query Plan, заполненная планом выполнения.
Поместите курсор мыши на любой из узлов на диаграмме и появится дополнительная полезная информация, относящаяся к этому шагу выполнения из плана запроса!
По умолчанию, Rapid SQL показывает план выполнения в графическом виде. Я вышел из старого мира оптимизации…. Предпочитаю текстовую версию, поэтому нажимаю правую кнопку мыши в окне с планом и выбираю “View as Text”.
Предпочитаю видеть текст запроса и план одновременно.
Это легко сделать. Видите закладки окон ISQL внизу главного окна? Для начала мы должны настроить Rapid SQL, чтобы он выдавал план в отдельном окне.
Нажмите кнопку Options (левый красный кружок) и затем установите опцию ‘Unattached’ для Result window. Это приведет к созданию двух отдельных закладок внизу Rapid SQL, после запуска запроса на выполнение. Просто протащите немного это окно за закладку и появится прямоугольник, куда можно переместить это окно.
Или можно воспользоваться пунктом Tile windows из главного меню программы
И еще: все это так же работает и в DBArtisan — решении для администраторов баз данных.