Explanation
Why the waste happens and who it affects.
Its serving layer is billed on the size of the indexed data for as long as serving is running, and Snowflake states this cost is incurred while the service is available to answer queries even if no queries are served. A service nobody calls therefore bills the same serving credits as one handling steady traffic.
The waste shows up with prototype and proof-of-concept RAG services that are never dropped, services whose calling application has been retired or pointed at a newer service, and services used only during business hours or in occasional batch evaluations. Serving is not auto-suspended by default, so unless AUTO_SUSPEND is set or someone suspends serving, an idle service keeps billing indefinitely. The indexing side adds its own cost when source tables keep changing, because refreshes run on a warehouse and new or updated rows are re-embedded, even if no one reads the results.
Billing model
The pricing dimensions that drive this cost.
Cortex Search bills several components separately; serving is the one that accrues with no activity.
- Serving compute
- Billed in AI Credits per GB per month of uncompressed indexed data (source text plus vector embeddings) for as long as serving is running, whether or not queries arrive; the Snowflake Service Consumption Table lists Cortex Search at 6.3 AI Credits per GB/mo of indexed data
- Indexing warehouse compute
- Standard warehouse credits consumed by the service's warehouse when a refresh detects changes in the base objects and rebuilds the index
- EMBED_TEXT tokens
- AI Credits charged per token embedded each time a row in the source query is inserted or updated
- Storage
- Materialized source data and index structures stored in the account at the flat per-TB storage rate
How to detect
5 checks to find it in your estate.
- Run DESCRIBE CORTEX SEARCH SERVICE for each service returned by SHOW CORTEX SEARCH SERVICES and list those whose serving_state is RUNNING
- Query SNOWFLAKE.ACCOUNT_USAGE.CORTEX_SEARCH_SERVING_USAGE_HISTORY (hourly serving credits per service) or CORTEX_SEARCH_DAILY_USAGE_HISTORY filtered to CONSUMPTION_TYPE = 'SERVING' to find services with continuous serving credits
- Confirm whether those services receive requests: with REQUEST_LOGGING enabled, each logged search request produces a row in the SNOWFLAKE.LOCAL.AI_OBSERVABILITY_EVENTS event table, readable through SNOWFLAKE.LOCAL.GET_AI_OBSERVABILITY_EVENTS; otherwise check with the owning application team
- Flag services with steady serving credits and no requests over a representative period, and services whose traffic is limited to predictable windows such as business hours or scheduled batch runs
- Check whether AUTO_SUSPEND is set on intermittently used services; it is off by default
How to fix
5 ways to remove the waste.
- Drop services that no longer back any application with DROP CORTEX SEARCH SERVICE, after confirming no agent, app or pipeline still references them
- Suspend serving on services that are idle for known periods with ALTER CORTEX SEARCH SERVICE <name> SUSPEND SERVING, and RESUME SERVING before use; while serving is suspended the service cannot answer queries
- For intermittent traffic, set ALTER CORTEX SEARCH SERVICE <name> SET AUTO_SUSPEND = <seconds> so serving is suspended after a period of query inactivity and resumed on the next query; the minimum is 1800 seconds and it affects serving only, not indexing
- Where freshness is not needed, suspend indexing (SUSPEND INDEXING) or lengthen TARGET_LAG to reduce refresh warehouse credits and re-embedding
- Reduce the indexed data size, for example by narrowing the source query to the rows and columns actually searched, since serving is billed per GB of indexed data
Documentation
Vendor references for pricing and configuration.
- Understanding cost for Cortex Search Servicesdocs.snowflake.com
- ALTER CORTEX SEARCH SERVICEdocs.snowflake.com
- DESCRIBE CORTEX SEARCH SERVICEdocs.snowflake.com
- CORTEX_SEARCH_SERVING_USAGE_HISTORY viewdocs.snowflake.com
- Monitor Cortex Search requestsdocs.snowflake.com
- Snowflake Service Consumption Tablesnowflake.com