Kategorien:

Systemfunktionen (Systeminformationen)

GET_PYTHON_PROFILER_OUTPUT (SNOWFLAKE.CORE)

Gibt eine Ausgabe mit einem Bericht zurück, der vom Python Code Profiler erstellt wurde.

Syntax

SNOWFLAKE.CORE.GET_PYTHON_PROFILER_OUTPUT(<query_id>)
Copy

Argumente

query_id

Abfrage-ID der Abfrage der gespeicherten Prozedur, für die das Profiling aktiviert wurde.

Rückgabewerte

Eine Zeichenfolge vom Typ VARCHAR mit dem vom Code-Profiler erzeugten Bericht.

Anforderungen an die Zugriffssteuerung

Zum Aufrufen dieser Funktion müssen Sie die Rolle ACCOUNTADMIN verwenden.

Beispiele

Wenn der Profiler so eingestellt ist, dass er den Speicher statt die Zeit erfasst, sieht die Einstellung in etwa so aus.

Handler Name: main
Python Runtime Version: 3.8
Modules Profiled: ['main_module']
File: _udf_code.py
Function: main at line 4

Line #   Mem usage    Increment  Occurrences  Line Contents
=============================================================
    4    245.3 MiB    245.3 MiB           1   def main(session, last_n, total):
    5                                             # create sample dataset to emulate id + elapsed time
    6    245.8 MiB      0.5 MiB           1       session.sql('''
    7                                                 CREATE OR REPLACE TABLE sample_query_history (query_id INT, elapsed_time FLOAT)''').collect()
    8    245.8 MiB      0.0 MiB           2       session.sql('''
    9                                             INSERT INTO sample_query_history
    10                                             SELECT
    11                                             seq8() AS query_id,
    12                                             uniform(0::float, 100::float, random()) as elapsed_time
    13    245.8 MiB      0.0 MiB           1       FROM table(generator(rowCount => {0}));'''.format(total)).collect()
    14
    15                                             # get the mean of the last n query elapsed time
    16    245.8 MiB      0.0 MiB           3       df = session.table('sample_query_history').select(
    17    245.8 MiB      0.0 MiB           1           funcs.col('query_id'),
    18    245.8 MiB      0.0 MiB           2           funcs.col('elapsed_time')).limit(last_n)
    19
    20    327.9 MiB     82.1 MiB           1       pandas_df = df.to_pandas()
    21    328.9 MiB      1.0 MiB           1       mean_time = pandas_df.loc[:, 'ELAPSED_TIME'].mean()
    22    320.9 MiB     -8.0 MiB           1       del pandas_df
    23    320.9 MiB      0.0 MiB           1       return mean_time