

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# CHANGE\$1SESSION\$1PRIORITY
<a name="r_CHANGE_SESSION_PRIORITY"></a>

CHANGE\$1SESSION\$1PRIORITY を使用すると、スーパーユーザーはシステム内のセッションの優先度をすぐに変更することができます。優先度 `CRITICAL` で実行できるセッション、ユーザー、またはクエリは 1 つのみです。

## 構文
<a name="r_CHANGE_SESSION_PRIORITY-synopsis"></a>

```
CHANGE_SESSION_PRIORITY(pid, priority)
```

## 引数
<a name="r_CHANGE_SESSION_PRIORITY-argument"></a>

 *pid*   
優先度が変更されたセッションのプロセス識別子。値 `-1` は、現在のセッションを表します。`INTEGER` 値は必須です。

 *priority*   
セッションに割り当てる新しい優先度。引数は、値 `CRITICAL`、`HIGHEST`、`HIGH`、`NORMAL`、`LOW`、または `LOWEST` を含む文字列である必要があります。

## 戻り型
<a name="r_CHANGE_SESSION_PRIORITY-return-type"></a>

なし

## 例
<a name="r_CHANGE_SESSION_PRIORITY-example"></a>

現在のセッションを処理しているサーバープロセスのプロセス ID を返すには、次の例を使用します。

```
SELECT pg_backend_pid();
               
+----------------+
| pg_backend_pid |
+----------------+
|          30311 |
+----------------+
```

この例では、現在のセッションの優先度が `LOWEST` に変更されます。

```
SELECT CHANGE_SESSION_PRIORITY(30311, 'Lowest');
               
+---------------------------------------------------------------------------------------+
|                                change_session_priority                                |
+---------------------------------------------------------------------------------------+
| Succeeded to change session priority. Changed session (pid:30311) priority to lowest. |
+---------------------------------------------------------------------------------------+
```

この例では、現在のセッションの優先度が `HIGH` に変更されます。

```
SELECT CHANGE_SESSION_PRIORITY(-1, 'High');

+-------------------------------------------------------------------------------------------------+
|                                     change_session_priority                                     |
+-------------------------------------------------------------------------------------------------+
| Succeeded to change session priority. Changed session (pid:30311) priority from lowest to high. |
+-------------------------------------------------------------------------------------------------+
```

セッションの優先度を変更するストアドプロシージャを作成するには、次の例を使用します。このストアドプロシージャを実行するアクセス許可は、データベースユーザー `test_user` に付与されます。

```
CREATE OR REPLACE PROCEDURE sp_priority_low(pid IN int, result OUT varchar)
AS $$
BEGIN
  SELECT CHANGE_SESSION_PRIORITY(pid, 'low') into result;
END;
$$ LANGUAGE plpgsql
SECURITY DEFINER;
GRANT EXECUTE ON PROCEDURE sp_priority_low(int) TO test_user;
```

次に、`test_user`という名前のデータベースユーザーがプロシージャを呼び出します。

```
CALL sp_priority_low(pg_backend_pid()); 

+------------------------------------------------------+
|                        result                        |
+------------------------------------------------------+
| Success. Change session (pid:13155) priority to low. |
+------------------------------------------------------+
```