Nilai parameter sesi pertanyaan sesi berjalan

8

Saya tidak berpikir ada cara untuk melakukan ini, tetapi saya ingin dapat menanyakan nilai apa yang sedang dijalankan sesi saat ini untuk parameter sesi COMMIT_WRITE.

Saya belum melihat apa pun dalam tampilan kinerja v $ ... ada yang tahu tentang tampilan SYS x $ dari mana nilai seperti itu dapat diperoleh?


Klarifikasi - yang perlu dilakukan adalah menarik pengaturan parameter untuk sesi lain, berjalan independen dari sesi saat ini.

KevinKirkpatrick
sumber

Jawaban:

7

Saya tahu pertanyaan ini lebih dari setahun, tetapi jika ada yang tersandung di sini seperti saya, Anda dapat meminta V $ SES_OPTIMIZER_ENV:

SYS> select name, value 
        from  V$SES_OPTIMIZER_ENV 
        where sid=54 
           and name='hash_area_size';

NAME                                     VALUE
—————————————- ————————-
hash_area_size                           100000

Sumber: http://oracleinaction.com/other-session-params/

Rph
sumber
4

Ya, ada cara untuk memeriksa ini.

Anda dapat meminta V $ PARAMETER dengan SQL ini:

SELECT name, value
  FROM v$parameter
 WHERE name like 'commit_write'
;

NAME                 VALUE
-------------------- --------------------
commit_write         (null)

Setelah itu ubah parameter berdasarkan sesi:

ALTER SESSION SET commit_write = 'IMMEDIATE';

Dan query v $ parameter lagi:

SELECT name, value
  FROM v$parameter
 WHERE name like 'commit_write'
;

NAME                 VALUE
-------------------- --------------------
commit_write         IMMEDIATE
ora-600
sumber
1
Menambahkan klarifikasi ke pertanyaan awal - tantangannya adalah untuk mencari tahu apa nilai parameter $ v ini untuk sesi yang berbeda .
KevinKirkpatrick
Anda mungkin dapat menggunakan perintah oradebug untuk membuang nilai parameter yang dimodifikasi. Saya tidak berpikir parameter terkait non-optimizer dari sesi lain terlihat dari $ gv atau x $. Terkadang mereka disimpan dalam sesi UGA dan tidak terpapar. Ingin tahu ingin tahu, mengapa Anda membutuhkan ini?
Raj
Ingin kewarasan-periksa bahwa pemicu masuk dengan benar mengatur parameter commit_write untuk sesi itu (dan bahwa parameter commit_write tidak berubah untuk sesi itu bahkan jika saya melakukan perubahan SISTEM ALTER) ... kemudian muncul pada saya "hei, jika ada cara untuk 'memuncak' pada parameter sesi berjalan, itu akan sangat berguna ". Tidak kritis - kami akan segera mengetahuinya jika tidak berfungsi (sepertinya sudah), tetapi ingin melihat apakah ada yang punya cara cepat untuk memverifikasi secara langsung.
KevinKirkpatrick
1
Saya tidak berpikir bahwa itu mungkin untuk mendapatkan nilai dari sesi yang berbeda. Tetapi biasanya Anda tidak mengubah nilai itu dua kali sehari sehingga sesi lain harus memiliki nilai sistem yang dikonfigurasi. Jika Anda ingin tahu apakah nilainya berubah berdasarkan sesi Anda harus melacak sesi itu. Pemicu masuk tidak akan banyak membantu karena tepat setelah masuk, nilai berbasis sesi masih sama dengan nilai lebar sistem.
ora-600
"dan bahwa parameter commit_write tidak berubah untuk sesi itu bahkan jika saya melakukan perubahan SISTEM ALTER)". Ini tidak mungkin diterapkan, kecuali tentu saja Anda mencabut 'ALTER SESSION' atau 'ALTER SYSTEM' dari pengguna yang Anda tidak ingin melakukan perubahan. Saya harap ALTER SYSTEM tidak diberikan kepada pengguna non DBA. Mencabut ALTER SESSION mungkin lebih mudah, atur commit_write pada tingkat sistem tetapi Anda harus memperhitungkan persyaratan kode vendor jika itu masalahnya. Juga ALTER SESSION akan mengesampingkan pengaturan ALTER SYSTEM di tingkat sesi jika dilakukan setelah ALTER SYSTEM. Jadi, cabut hak istimewa itu agar aman.
Raj