page335
423
joins, 380, 381
optimization code, 374–380, 382–386
referenced objects, 388
session settings, 386, 387
snowflake feature use cases, 404–406
snowflake support, 403
testing code changes, 407
Prefiltered entitlement models, 323
Provision-based models, 5, 23
Python installation
Anaconda package, 416
checking version, 410
downgrading Python version, 411, 412
downloading/installing SnowCD,
417, 418
installation process, 412, 413
load testing, 409
Pandas/jinja2, 415
Pyinstaller/pip, 414, 415
Snowpark Python, 413
Q
Query Acceleration Service (QAS), 247
Query Block Internal Representation
(QBIR), 30
Query optimizers
compilation
cost-based join ordering, 32
initial plan generation, 32
logical rewriter, 31
micro-partition pruning, 32
parsing, 30
physical query plan, 33
plan rewriter, 32
referential integrity, 31
semantic analysis, 30
steps, 29
tokenization, 30
execution
compression, 35
flow control, 36
SIMD, 34, 35
vectorization, 35
warehouses, 34
lifecycle, 27
influence system, 26
query failure, 28
RDBMS, 36
Query parsing order
DISTINCT clause, 19
FROM clause, 16, 17
GROUP BY clause, 17
HAVING clause, 18
LIMIT/OFFSET, 19
ORDER BY clause, 19
SELECT statements, 16, 18
SQL joins, 20, 21
WHERE clause, 17
Query performance
cost management screen, 368
explain plan, 370–372
GET_QUERY_OPERATOR_STATS,
372, 373
query history screen, 369
query profiles, 369, 370
tools, 367
Warehouse screen, 368
Query profiler
accessing profile information, 51, 52
approach, 41
bad profile
data capture, 69
join explosion, 70
join order, 92–94
long compilation time, 76–81
long execution time, 81–84
long table scan, 85, 87
INDEX