Информация

Последние записи

Теги


Блоги


Записи из всех блогов на Sql.ru


Представляю сообществу свою книгу oracle sql

Блог: Oracle SQL
Попытался структурировать свои знания и опыт, получилось 600 страниц, прошу не быть строгими и критиковать аргументированно.
В электронном варианте книга бесплатна, 6 рублей - обязательная комиссия магазина, как я понял.
Oracle SQL. 100 шагов от новичка до профессионала. 20 дней новых знаний и практики
или печатная версия , но уже за деньги
Oracle SQL. 100 шагов от новичка до профессионала. 20 дней новых знаний и практики
Пользуйтесь.
автор: Myp3_u_K добавлено: 20 июл 19 просмотры: 1385, комментарии: 5



уже МИЛЛИОН!!! 1 000 000!

Блог: Oracle SQL
Просмотров

Сегодня 1718
В этом месяце 10530
Всего 1000003

Сегодня счетчик посещений моего блога превзошел миллион просмотров, что дальше ? Продолжаю вести курсы, публикую книгу , постараюсь и дальше радовать вас новыми интересными заметками, дорогие читатели.
С уважением, Чалышев Максим Михайлович.
автор: Myp3_u_K добавлено: 14 апр 19 просмотры: 2723, комментарии: 1



Приостановка всех пользовательских процессов, запрет входа новых пользователей и многое другое

Блог: СУБД Caché
Недавно возникла интересная задача: 21847083.

Итак, необходимо перезапустить СУБД.
Для запуска команды из самой СУБД можно воспользоваться функцией $zf(-100) - новым, безопасным аналогом функций $zf(-1)/$zf(-2), например:

cmd "ccontrol"
args(1) = "stopstart"
args(2) = $p($zu(86),"*",2) ; имя экземпляра
args(3) = "quietly"
d $ZF(-100,"/ASYNC",cmd,.args)

Но при ближайшем рассмотрении топика обнаружилось, что..
автор: servit добавлено: 02 апр 19 просмотры: 3018, комментарии: 0



USE HINT и ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS

В этой публикации мне бы хотелось вернуться к подсказкам USE HINT, представленным впервые в SQL Server 2016 SP1. Часть из них мы уже рассмотрели в предыдущих статьях, в этой статье мы рассмотрим очередную подсказку – ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS, которая влияет на алгоритм оценки числа строк в соединениях.

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

Далее...
автор: SomewhereSomehow добавлено: 30 мар 19 просмотры: 1392, комментарии: 0



SQL Server 2019: Действительный план запроса

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

В данной заметке мы рассмотрим способы получения планов запросов, а также новую возможность SQL Server 2019 CTP 2.4 – получить последний действительный план.

Далее...
автор: SomewhereSomehow добавлено: 29 мар 19 просмотры: 1459, комментарии: 0



SERIALIZABLE режим

Блог: Oracle SQL
Чалышев Максим Михайлович

Моя книга, электронная версия бесплатно
Oracle SQL. 100 шагов от новичка до профессионала. 20 дней новых знаний и практики или платная печатная версия

SQL. 5 дней которые изменят вашу жизнь.

В СУБД ORACLE есть возможность, чтобы пользователь всегда видел только те данные в таблицах, которые были доступны с начала его сессии
Такой режим (уровень изоляции) называется SERIALIZABLE. Для того чтобы включить этот режим используется команда

Alter session set isolation_level=serializable;

Следующий пример показывает отличие режима SERIALIZABLE от стандартного режима эксплуатации СУБД. Уровня изоляции READ COMMITTED
Откроем в двух разных окнах программу SQL Developer (или создадим новый Worksheet) подключимся к схеме SYS как администратор.
создадим таблицу man5
Create table Man5(prt number, name varchar2(50));



INSERT INTO man5 VALUES(20, 'Олег');
INSERT INTO man5 VALUES(21, 'Влад');
INSERT INTO man5 VALUES(22, 'Саша');
Commit;


читать дальше...
автор: Myp3_u_K добавлено: 18 фев 19 просмотры: 2546, комментарии: 0



Контекст сеанса

Блог: Oracle SQL
Чалышев Максим Михайлович
SQL. 5 дней которые изменят твою жизнь.

Введение
В каждой сессии есть возможность использовать специальные структуры данных, именуемые контекст.
Контексты - это набор данных вида - параметр значение. Контекст предоставляет дополнительные возможности для приложений, использующих СУБД Oracle.
Теория и практика
Контекст - это предопределённый набор параметров и значений создаваемый в рамках определенной сессии. Несколько таких наборов параметр значение, объединяется с помощью структуры называемой контекстом.

Задается значение контекста с помощью процедуры DBMS_SESSION.SET_CONTEXT

Функция SYS_CONTEXT позволяет получить значение заданного контекста в раках сессии.
Для создания контекста специальная команда CREATE CONTEXT.
Сначала следует создать специальною процедуру для управления контекстом.

CREATE OR REPLACE PROCEDURE set_mycontext_value ( par IN VARCHAR2, val IN VARCHAR2 ) 
AS BEGIN  DBMS_SESSION.SET_CONTEXT ( 'myctx', par, val ); END;

CREATE OR REPLACE CONTEXT myctx USING set_mycontext_value;

читать дальше...
автор: Myp3_u_K добавлено: 18 фев 19 просмотры: 2531, комментарии: 0



Планировщик JOB заданий. Управление.

Блог: Oracle SQL
Чалышев Максим Михайлович

SQL. 5 дней которые изменят твою жизнь.
моя книга , изучаем Oracle SQL, бесплатно
Oracle SQL. 100 шагов от новичка до профессионала. 20 дней новых знаний и практики или платная печатная версия

Введение
В Oracle есть специальный механизм запланировать выполнение определённой программы, на заданное время, это может быть оператор SQL, программа на языке PLSQL, либо даже внешняя программа. Этот механизм называется механизмом заданий Job

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

Теория и практика

Для управления заданиями в Oracle существует специальные пакет DBMS_JOB:
Создание заданий
Можно использовать механизм dbms_job
Или механизм dbms_scheduler – более современный способ
DBMS_JOB.SUBMIT(
 JOB OUT BINARY_INTEGER,
 WHAT IN VARCHAR2,
 NEXT_DATE IN DATE DEFAULT SYSDATE,
 INTERVAL IN VARCHAR2 DEFAULT NULL,
 NO_PARSE IN BOOLEAN DEFAULT FALSE,
 INSTANCE IN BINARY_INTEGER DEFAULT any_instance,
 FORCE IN BOOLEAN DEFAULT FALSE
);


Здесь:
JOB – Входной параметр уникальный идентификатор задания. Идентификатор генерируется специальной системной последовательностью.
WHAT - анонимный PL/SQL блок, в данном блоке указывается последовательность команд которая будет выполнена в процессе работы задания.
В же в этом параметре можно также писать команды вставки удаления редактирования (inser update delete), а так же команды для создания создания индексов таблиц, создания индексов, ограничений.
NEXT_DATE – дата время следующего выполнения задания.
Если будет указана дата меньше чем текущую дата, то выполнение задания будет начато немедленно.
INTERVAL – Вычисляемая дата следующего выполнения задания в столбце NEXT_DATE. Примеры интервала задания:
NULL
Задание выполнится однократно и удалится.
читать дальше...
автор: Myp3_u_K добавлено: 18 фев 19 просмотры: 3176, комментарии: 0



Быстрая очистка таблиц и EXECUTE IMMEDIATE.

Блог: Oracle SQL
Чалышев Максим Михайлович
SQL. 5 дней, которые изменят твою жизнь.

Введение


Для быстрой очистки таблиц в Oracle применяется специальный оператор TRUNCATE TABLE.
Данный оператор является оператором DDL, оператором мгновенного выполнения и поэтому для его вызова нам потребуется оператор динамического SQL.
Динамический SQL используется в ORACLE с помощью команды EXECUTE IMMEDIATE
Теория и практика
Оператор EXECUTE IMMEDIATE выполняет динамический оператор SQL или анонимный PL / SQL блок. В нашем случае мы будем использовать EXECUTE IMMEDIATE для работы с TRUNCATE TABLE.
Текст динамического SQL заключается в кавычки.
Оператор TRUNCATE TABLE используется для быстрого удаления всех записей из таблицы в Oracle. По результату аналогичен DELETE, без условий WHERE, но выполняется гораздо быстрее.
Синтаксис
TRUNCATE TABLE table_name
  [ PRESERVE MATERIALIZED VIEW LOG | PURGE MATERIALIZED VIEW LOG ]
  [ DROP STORAGE | REUSE STORAGE ] ;

читать дальше...
автор: Myp3_u_K добавлено: 18 фев 19 просмотры: 2415, комментарии: 0



Внешние таблицы External Table

Блог: Oracle SQL
Чалышев Максим Михайлович
SQL. 5 дней, которые изменят вашу жизнь.
Внешние таблицы – специальный механизм Oracle СУБД с помощью которого можно обращаться в данным , хранящимся в файлах вне базы данных как к обычным таблицам.

Для загрузки данных могут использоваться команды драйвера OracleLoader. В ExternalTable не могут применяться операторы изменения данных (DELETE INSERT UPDATE MERGE).

Но, к таким таблицам вполне могут применяться стандартные запросы SELECT, с использованием групповых операций, агрегатных функций, аналитического SQL.

Все это делает механизм внешних таблиц особенно эффективным для проектов DWH(хранилищ данных) , при формировании ETL(процедур загрузки) для данных.

Теория и практика

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

Название файлов city.csv и man.csv, кодировка UTF8 - ниже представлено содержание этих файлов текстовом виде.

city.csv

1,Москва,10000000
2,Владимир,500000
3,Орел,300000
4,Курск,200000
5,Казань,2000000
7,Котлас,110000
8,Мурманск,400000
9,Ярославль,500000 

man.csv
9152222221,Андрей,Николаев,1,22
9152222222,Максим,Москитов,1,31
9153333333,Олег,Денисов,3,34
9173333334,Алиса,Никифорова,4,31
9173333335,Таня,Иванова,4,31
9213333336,Алексей,Иванов,7,25
9213333331,Андрей,Некрасов,2,27
9213333332,Миша,Рогозин,2,21
9214444444,Алексей,Галкин,1,38

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

CREATE OR REPLACE DIRECTORY ext_tab_data AS 'c:/temp';

Здесь
• ext_tab_data – название объекта directory
• AS 'c:/temp' – каталог, где расположены файлы для формирования внешних таблиц.
Далее формируем временные таблицы
Создаем таблицу для файла city.csv
читать дальше...
автор: Myp3_u_K добавлено: 18 фев 19 просмотры: 2773, комментарии: 1


предыдущие записи