تجربیات کاری چند دوست

در این وبلاگ تجربیاتی که در حین کار بدست آورده ایم را به اشتراک خواهیم گذاشت

تجربیات کاری چند دوست

در این وبلاگ تجربیاتی که در حین کار بدست آورده ایم را به اشتراک خواهیم گذاشت

تجربیات کاری چند دوست
آخرین نظرات
  • ۱۶ مرداد ۹۸، ۰۱:۰۰ - علی جهان نما
    عالی بود

۳ مطلب توسط «محمد جعفری» ثبت شده است

تا پیش از اوراکل 12 چنانچه بخواهید برای ستونی از یک جدول Defaul Value تعیین کنید، باید یک Trigger و Sequence ایجاد شود؛ تا هنگام Insert در جدول مورد نظر، Trigger  اجرا شود و با اضافه شدن  Sequnce،  مقدار آن در ستون مورد نظر قرار گیرد، مانند مثال زیر :

CREATE TABLE Person (
ID NUMBER(10) NOT NULL,
… );

ALTER TABLE departments ADD (
CONSTRAINT person_pk PRIMARY KEY (ID));

CREATE SEQUENCE person_seq START WITH 1;

CREATE OR REPLACE TRIGGER person_trgr
BEFORE INSERT ON Person
FOR EACH ROW

BEGIN
SELECT person_seq.NEXTVAL
INTO :new.id
FROM dual;
END;

ولی در اوراکل 12C نیازی به ساختن Trigger نیست و میتوان تنها با استفاده از Sequence برای ستون مورد نظر Default Value تعیین کرد. به عنوان مثال :

CREATE SEQUENCE person_seq;

CREATE TABLE Person (
ID NUMBER(10) DEFUALT person_seq.NEXTVAL,
… );

  • محمد جعفری

 

1- ابتدا Plan  های مربوط به کوئری مورد نظر را از طریق زیر می یابیم :

) select * from dba_sql_plan_baselines b where b.signature in

select s.exact_matching_signature from v$sql s where sql_id = '0p09g7ftbkmk0

(

2- سپس sql_handle و plan_name ای که از مرحله قبل بدست آمده، در دستور زیر قرار داده و آن را اجرا می کنیم :


set serveroutput on

declare

l_plans_dropped pls_integer;

begin

l_plans_dropped:=dbms_spm.drop_sql_plan_baseline(sql_handle => 'SQL_cfffc84dd93b2190',plan_name => 'SQL_PLAN_czzy89rcmq8ch9865aff3');

dbms_output.put_line(l_plans_dropped);

end;

/

 

  • محمد جعفری
گاهی ( مثلا در نبود Oracle Enterprise Manager ) نیاز به اجرای Sql tuning به صورت دستی می باشد؛ مراحل زیر عملیات Sql tuning را در خط فرمان نشان می دهد :

 1- ابتدا باید  sql_id کوئری مورد نظر را بیابید.

select sq.sql_id,sq.sql_text from v$sql sq where sq.sql_text like '%Your Query%';

یا

select sql_id from v$session where sid = x

 


2- در گام بعدی برای کوئری یک tuning task ایجاد می کنیم :

SET SERVEROUTPUT ON

declare

stmt_task VARCHAR2(40);

begin

tune_task := DBMS_SQLTUNE.CREATE_TUNING_TASK(sql_id => ' 5fktw7d0p8mut');

DBMS_OUTPUT.put_line('task_id: ' || tune_task);

end;

/

task_id: TASK_1042

  • محمد جعفری