Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Référence des procédures Babelfish for Aurora PostgreSQL
Présentation
Vous pouvez utiliser la procédure suivante pour les instances de base de données Amazon RDS exécutant Babelfish for Aurora PostgreSQL afin d'améliorer les performances des requêtes :
sp_babelfish_volatility
La volatilité des fonctions PostgreSQL aide l'optimiseur à mieux exécuter les requêtes, ce qui, lorsqu'il est utilisé dans des parties de certaines clauses, a un impact significatif sur les performances des requêtes.
Syntaxe
sp_babelfish_volatility ‘function_name’, ‘volatility’
Arguments
- function_name (facultatif)
-
Vous pouvez spécifier la valeur de cet argument avec un nom en deux parties comme
schema_name.function_name
ou uniquementfunction_name
. Si vous spécifiez uniquementfunction_name
, le nom du schéma est le schéma par défaut pour l'utilisateur actuel. - volatility (facultatif)
-
Les valeurs PostgreSQL valides de volatilité sont
stable
,volatile
ouimmutable
. Pour plus d'informations, consultez https://www.postgresql.org/docs/current/xfunc-volatility.html
Note
Quand sp_babelfish_volatility
est appelée avec function_name
qui possède plusieurs définitions, elle génère une erreur.
Jeu de résultats
Si les paramètres ne sont pas mentionnés, le jeu de résultats s'affiche sous les colonnes suivantes :schemaname
, functionname
, volatility
.
Notes d'utilisation
La volatilité des fonctions PostgreSQL aide l'optimiseur à mieux exécuter les requêtes, ce qui, lorsqu'il est utilisé dans des parties de certaines clauses, a un impact significatif sur les performances des requêtes.
Exemples
Les exemples suivants montrent comment créer des fonctions simples et expliquent ensuite comment utiliser sp_babelfish_volatility
sur ces fonctions à l'aide de différentes méthodes.
1>
create function f1() returns int as begin return 0 end2>
go
1>
create schema test_schema2>
go
1>
create function test_schema.f1() returns int as begin return 0 end2>
go
L'exemple suivant montre la volatilité des fonctions :
1>
exec sp_babelfish_volatility2>
goschemaname functionname volatility ----------- ------------ ---------- dbo f1 volatile test_schema f1 volatile
L'exemple suivant montre comment modifier la volatilité des fonctions :
1>
exec sp_babelfish_volatility 'f1','stable'2>
go1>
exec sp_babelfish_volatility 'test_schema.f1','immutable'2>
go
Lorsque vous spécifiez uniquement function_name, cela affiche le nom du schéma, le nom de la fonction et la volatilité de cette fonction. L'exemple suivant affiche la volatilité des fonctions après la modification des valeurs :
1>
exec sp_babelfish_volatility 'test_schema.f1'2>
goschemaname functionname volatility ----------- ------------ ---------- test_schema f1 immutable
1>
exec sp_babelfish_volatility 'f1'2>
goschemaname functionname volatility ----------- ------------ ---------- dbo f1 stable
Lorsque vous ne spécifiez aucun argument, cela affiche la liste des fonctions (nom du schéma, nom de la fonction, volatilité des fonctions) présentes dans la base de données actuelle :
1>
exec sp_babelfish_volatility2>
goschemaname functionname volatility ----------- ------------ ---------- dbo f1 stable test_schema f1 immutable
sp_execute_postgresql
Vous pouvez exécuter des instructions PostgreSQL du point de terminaison T-SQL. Cela simplifie vos applications, car vous n'avez pas besoin de quitter le port T-SQL pour exécuter ces instructions.
Syntaxe
sp_execute_postgresql [ @stmt = ] statement
Arguments
- instruction [@stmt]
-
L'argument est de type varchar. Cet argument accepte les instructions en langage PG.
Note
Vous ne pouvez passer qu'une seule instruction en langage PG comme argument, sinon l'erreur suivante se produira.
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
Notes d'utilisation
CREATE EXTENSION
Crée et charge une nouvelle extension dans la base de données actuelle.
1>
EXEC sp_execute_postgresql 'create extension [ IF NOT EXISTS ]<extension name>
[ WITH ] [SCHEMAschema_name
] [VERSIONversion
]';2>
go
L'exemple suivant montre comment créer une extension :
1>
EXEC sp_execute_postgresql 'create extension pg_stat_statements with schema sys version "1.10"';2>
go
Utilisez la commande suivante pour accéder aux objets de l'extension :
1>
select * from pg_stat_statements;2>
go
Note
Si le nom du schéma n'est pas fourni explicitement lors de la création de l'extension, les extensions sont installées par défaut dans le schéma public. Vous devez fournir le qualificateur de schéma pour accéder aux objets de l'extension, comme mentionné ci-dessous :
1>
select * from [public].pg_stat_statements;2>
go
Extensions prises en charge
Les extensions suivantes disponibles avec Aurora PostgreSQL sont compatibles avec Babelfish.
pg_stat_statements
tds_fdw
fuzzystrmatch
Limites
Les utilisateurs doivent posséder le rôle sysadmin sur T-SQL et rds_superuser sur postgres pour installer les extensions.
Les extensions ne peuvent pas être installées dans des schémas créés par l'utilisateur, ni dans des schémas dbo et guest pour les bases de données master, tempdb et msdb.
L'option CASCADE n'est pas prise en charge.
ALTER EXTENSION
Vous pouvez effectuer une mise à niveau vers une nouvelle version de l'extension à l'aide de l'instruction ALTER.
1>
EXEC sp_execute_postgresql 'alter extension <extension name> UPDATE TO <new_version>';2>
go
Limites
Vous pouvez mettre à niveau la version de votre extension uniquement à l'aide de l'instruction ALTER Extension. Les autres opérations ne sont pas prises en charge.
DROP EXTENSION
Supprime l'extension spécifiée. Vous pouvez également utiliser les options if exists
ou restrict
pour supprimer l'extension.
1>
EXEC sp_execute_postgresql 'drop extension <extension name>';2>
go
Limites
L'option CASCADE n'est pas prise en charge.