Change Native App Compute Pool
QPR ProcessAnalyzer Native App uses by default either the CPU_X64_XS or CPU_X64_S size Snowflake compute pool, depending when the Native App has been installed. The current compute pool size can be checked in Snowsight in Compute > Compute pools where the QPR_PROCESSANALYZER_COMPUTE_POOL compute pool can be found.
The compute pool can be changed using the instructions in this article. The instructions use the public.set_compute_pool procedure which is part of the Native App. It recreates the Native App application service to a specified compute pool. In the process, QPR ProcessAnalyzer configuration database will be lost, so it's important to use a snapshot to save and restore data. The application role ADMINISTRATOR is required to run the procedure.
To change the compute pool size, follow these step-by-step instructions by executing the commands in a Snowflake worksheet. This guide will switch the compute pool to the CPU_X64_XS size. If you prefer to change the compute pool size to CPU_X64_S, replace the INSTANCE_FAMILY with that value. Additionally, update the compute pool name to reflect its new size.
-- 1. Stop application service
ALTER SERVICE QPR_PROCESSANALYZER.METADATA.QPR_PROCESSANALYZER_SERVICE SUSPEND;
CALL QPR_PROCESSANALYZER.METADATA.QPR_PROCESSANALYZER_SERVICE!SPCS_WAIT_FOR('SUSPENDED', 600);
-- 2. Create a database and schema for snapshots and take a snapshot
CREATE DATABASE QPRProcessAnalyzerBackups;
USE DATABASE QPRProcessAnalyzerBackups;
CREATE SCHEMA Backups;
CREATE SNAPSHOT QPRProcessAnalyzerBackups.Backups.MySnapshot
FROM SERVICE QPR_PROCESSANALYZER.METADATA.QPR_PROCESSANALYZER_SERVICE
VOLUME "data"
INSTANCE 0;
-- 3. Create new compute pool for application
CREATE COMPUTE POOL QPR_PROCESSANALYZER_COMPUTE_POOL_XS
FOR APPLICATION QPR_PROCESSANALYZER
MIN_NODES = 1
MAX_NODES = 1
INSTANCE_FAMILY = CPU_X64_XS
AUTO_RESUME = true;
-- 4. Wait until compute pool is in status IDLE by usin the following command
SHOW COMPUTE POOLS LIKE 'QPR_PROCESSANALYZER_COMPUTE_POOL_S';
-- 5. Grant permissions to application
GRANT USAGE ON COMPUTE POOL QPR_PROCESSANALYZER_COMPUTE_POOL_XS TO APPLICATION QPR_PROCESSANALYZER;
-- 6. Call the SET_COMPUTE_POOL procedure
CALL QPR_PROCESSANALYZER.PUBLIC.SET_COMPUTE_POOL('QPR_PROCESSANALYZER_COMPUTE_POOL_XS');
-- 7. In Snowsight, go to application Native App and press 'Activate'. Wait until activation is finished.
-- 8. Stop application service again to restore snapshot
ALTER SERVICE QPR_PROCESSANALYZER.METADATA.QPR_PROCESSANALYZER_SERVICE SUSPEND;
CALL QPR_PROCESSANALYZER.METADATA.QPR_PROCESSANALYZER_SERVICE!SPCS_WAIT_FOR('SUSPENDED', 600);
-- 9. Restore snapshot
ALTER SERVICE QPR_PROCESSANALYZER.METADATA.QPR_PROCESSANALYZER_SERVICE RESTORE
VOLUME "data"
INSTANCES 0
FROM SNAPSHOT QPRProcessAnalyzerBackups.Backups.MySnapshot;
-- 10. Start service
ALTER SERVICE QPR_PROCESSANALYZER.METADATA.QPR_PROCESSANALYZER_SERVICE RESUME;
CALL QPR_PROCESSANALYZER.METADATA.QPR_PROCESSANALYZER_SERVICE!SPCS_WAIT_FOR('RUNNING', 600);
-- 11. Remove old compute pool
GRANT OWNERSHIP ON COMPUTE POOL QPR_PROCESSANALYZER_COMPUTE_POOL TO ROLE ACCOUNTADMIN;
DROP COMPUTE POOL QPR_PROCESSANALYZER_COMPUTE_POOL;
More information about Snowflake compute pools: https://docs.snowflake.com/en/developer-guide/snowpark-container-services/working-with-compute-pool.