

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Bekerja dengan Babelfish untuk prosedur Aurora Postgre SQL
<a name="Appendix.Babelfish.Functions"></a>

## Gambaran Umum
<a name="Appendix.Babelfish.Functions.Overview"></a>

Anda dapat menggunakan prosedur berikut untuk instans Amazon RDS DB yang menjalankan Babelfish for Aurora SQL Postgre untuk kinerja kueri yang lebih baik:
+ [sp\$1babelfish\$1volatility](sp_babelfish_volatility.md)
+ [sp\$1execute\$1postgresql](sp_execute_postgresql.md)

# sp\$1babelfish\$1volatility
<a name="sp_babelfish_volatility"></a>

Volatilitas SQL fungsi Postgre membantu pengoptimal untuk eksekusi kueri yang lebih baik yang bila digunakan di bagian klausa tertentu memiliki dampak signifikan pada kinerja kueri. 

## Sintaks
<a name="sp_babelfish_volatility-syntax"></a>

 

```
sp_babelfish_volatility ‘function_name’, ‘volatility’
```

## Argumen
<a name="sp_babelfish_volatility-arguments"></a>

 *function\$1name (opsional)*   
Anda dapat menentukan nilai argumen ini dengan nama dua bagian sebagai `schema_name.function_name` atau hanya `function_name`. Jika hanya menentukan `function_name`, nama skemanya adalah skema default untuk pengguna saat ini.

 *volatilitas (opsional)*   
SQLNilai volatilitas Postgre yang valid adalah`stable`,, `volatile` atau. `immutable` Untuk informasi selengkapnya, silakan lihat [https://www.postgresql.org/docs/current/xfunc-volatility.html](https://www.postgresql.org/docs/current/xfunc-volatility.html)

**catatan**  
Saat `sp_babelfish_volatility` dipanggil dengan `function_name` yang memiliki beberapa definisi, hal tersebut akan menimbulkan kesalahan.

## Set hasil
<a name="sp_babelfish_volatility-return-type"></a>

Jika parameter tidak disebutkan, maka set hasil ditampilkan di bawah kolom berikut: `schemaname`, `functionname`, `volatility`.

## Catatan penggunaan
<a name="sp_babelfish_volatility-usage-notes"></a>

Volatilitas SQL fungsi Postgre membantu pengoptimal untuk eksekusi kueri yang lebih baik yang bila digunakan di bagian klausa tertentu memiliki dampak signifikan pada kinerja kueri. 

## Contoh
<a name="sp_babelfish_volatility-examples"></a>

Contoh berikut menunjukkan cara membuat fungsi sederhana, lalu menjelaskan cara menggunakan `sp_babelfish_volatility` pada fungsi-fungsi ini menggunakan metode yang berbeda.

```
1> create function f1() returns int as begin return 0 end
2> go
```

```
1> create schema test_schema
2> go
```

```
1> create function test_schema.f1() returns int as begin return 0 end
2> go
```

Contoh berikut menunjukkan volatilitas fungsi tersebut:

```
1> exec sp_babelfish_volatility
2> go
            
schemaname  functionname volatility
----------- ------------ ----------
dbo         f1           volatile
test_schema f1           volatile
```

Contoh berikut menunjukkan cara mengubah volatilitas fungsi tersebut:

```
1> exec sp_babelfish_volatility 'f1','stable'
2> go
1> exec sp_babelfish_volatility 'test_schema.f1','immutable'
2> go
```

Saat Anda hanya menentukan function\$1name, hal tersebut menampilkan nama skema, nama fungsi, dan volatilitas fungsi tersebut. Contoh berikut menampilkan volatilitas fungsi setelah mengubah nilai:

```
1> exec sp_babelfish_volatility 'test_schema.f1'
2> go
            
schemaname  functionname volatility
----------- ------------ ----------
test_schema f1           immutable
```

```
1> exec sp_babelfish_volatility 'f1'
2> go
            
schemaname  functionname volatility
----------- ------------ ----------
dbo         f1           stable
```

Saat Anda tidak menentukan argumen apa pun, daftar fungsi akan ditampilkan (nama skema, nama fungsi, volatilitas fungsi) yang ada dalam basis data saat ini:

```
1> exec sp_babelfish_volatility 
2> go
            
schemaname  functionname volatility
----------- ------------ ----------
dbo         f1           stable
test_schema f1           immutable
```

# sp\$1execute\$1postgresql
<a name="sp_execute_postgresql"></a>

Anda dapat mengeksekusi SQL pernyataan Postgre dari T- SQL endpoint. Ini menyederhanakan aplikasi Anda karena Anda tidak perlu keluar dari SQL T-port untuk mengeksekusi pernyataan ini. 

## Sintaks
<a name="sp_execute_postgresql-syntax"></a>

 

```
sp_execute_postgresql [ @stmt = ] statement
```

## Argumen
<a name="sp_execute_postgresql-arguments"></a>

 *Pernyataan [ @stmt ]*   
Argumennya adalah dari datatype varchar. Argumen ini menerima pernyataan dialek PG.

**catatan**  
Anda hanya dapat meneruskan satu pernyataan dialek PG sebagai argumen, jika tidak, maka akan menimbulkan kesalahan berikut.

```
1>exec sp_execute_postgresql 'create extension pg_stat_statements; drop extension pg_stat_statements'
2>go
```

```
Msg 33557097, Level 16, State 1, Server BABELFISH, Line 1
expected 1 statement but got 2 statements after parsing
```

## Catatan penggunaan
<a name="sp_execute_postgresql-statements"></a>

### CREATE EXTENSION
<a name="sp_execute_postgresql-statements-create"></a>

Membuat dan memuat ekstensi baru ke dalam basis data saat ini. 

```
1>EXEC sp_execute_postgresql 'create extension [ IF NOT EXISTS ] <extension name> [ WITH ] [SCHEMA schema_name] [VERSION version]';
2>go
```

Contoh berikut menunjukkan cara membuat ekstensi:

```
1>EXEC sp_execute_postgresql 'create extension pg_stat_statements with schema sys version "1.10"';
2>go
```

Gunakan perintah berikut untuk mengakses objek ekstensi:

```
1>select * from pg_stat_statements;
2>go
```

**catatan**  
 Jika nama skema tidak diberikan secara eksplisit selama pembuatan ekstensi, secara default ekstensi diinstal di skema publik. Anda harus memberikan kualifikasi skema untuk mengakses objek ekstensi seperti yang disebutkan di bawah ini:

```
1>select * from [public].pg_stat_statements;
2>go
```

**Ekstensi yang didukung**

Ekstensi berikut yang tersedia dengan Aurora Postgre SQL berfungsi dengan Babelfish.
+ `pg_stat_statements`
+ `tds_fdw`
+ `fuzzystrmatch`

**Batasan**
+ Pengguna harus memiliki peran sysadmin pada T- SQL dan rds\$1superuser di postgres untuk menginstal ekstensi.
+ Ekstensi tidak dapat diinstal pada skema yang dibuat pengguna dan juga pada skema dbo dan tamu untuk basis data master, tempdb, dan msdb. 
+ CASCADEopsi tidak didukung.

## ALTER EXTENSION
<a name="sp_execute_postgresql-alter"></a>

Anda dapat meningkatkan ke versi ekstensi baru menggunakan ALTER ekstensi. 

```
1>EXEC sp_execute_postgresql 'alter extension <extension name> UPDATE TO <new_version>';
2>go
```

**Batasan**
+ Anda dapat memutakhirkan versi ekstensi Anda hanya menggunakan pernyataan ALTER Ekstensi. Opsi lain tidak didukung.

## DROP EXTENSION
<a name="sp_execute_postgresql-drop"></a>

Membatalkan ekstensi yang ditentukan. Anda juga dapat menggunakan opsi `if exists` atau `restrict` untuk membatalkan ekstensi. 

```
1>EXEC sp_execute_postgresql 'drop extension <extension name>';
2>go
```

**Batasan**
+ CASCADEopsi tidak didukung.