<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/babelfish-for-aurora-postgresql-performance-tuning-ugkvx7bx6" -->

---
title: Babelfish for Aurora PostgreSQL performance tuning
description: A detailed technical walkthrough covers how to tune Babelfish for Aurora PostgreSQL after migrating SQL Server workloads. It covers monitoring tools...
canonical: https://daily.dev/posts/babelfish-for-aurora-postgresql-performance-tuning-ugkvx7bx6
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Babelfish for Aurora PostgreSQL performance tuning | daily.dev
og:description: A detailed technical walkthrough covers how to tune Babelfish for Aurora PostgreSQL after migrating SQL Server workloads. It covers monitoring tools...
og:url: https://daily.dev/posts/babelfish-for-aurora-postgresql-performance-tuning-ugkvx7bx6
og:image: https://api.daily.dev/og/posts/uGKvx7BX6.png
og:image:alt: Babelfish for Aurora PostgreSQL performance tuning
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Babelfish for Aurora PostgreSQL performance tuning

**[AWS Database Blog](https://daily.dev/sources/aws-database-blog)** · 15 min read · 0 upvotes · 0 comments

## Summary

A detailed technical walkthrough covers how to tune Babelfish for Aurora PostgreSQL after migrating SQL Server workloads. It covers monitoring tools (CloudWatch, Enhanced Monitoring, Database Insights), connection pooling with RDS Proxy or PgBouncer, enabling T-SQL query hints via pg_hint_plan, function volatility classification (IMMUTABLE/STABLE/VOLATILE), parameter mappings between SQL Server and PostgreSQL (parallelism, memory, connections), and ongoing maintenance via VACUUM and ANALYZE. Includes concrete configuration examples and parameter group settings for production tuning.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://aws.amazon.com/blogs/database/babelfish-for-aurora-postgresql-performance-tuning>

## Questions this post answers

### How do I enable T-SQL query hints in Babelfish for Aurora PostgreSQL?

Query hints using pg_hint_plan are supported starting with Babelfish version 2.3.0. Run the stored procedure sp_babelfish_configure to turn on the enable_pg_hint parameter, after which Babelfish recognizes T-SQL hints like INDEX, JOIN, MAXDOP, and FORCE ORDER included directly in queries.

_daily.dev surfaces practical guidance like this for teams tuning Babelfish migrations off SQL Server._

### What PostgreSQL parameter is equivalent to SQL Server's max server memory setting for Aurora PostgreSQL tuning?

SQL Server's single max server memory setting maps to multiple PostgreSQL parameters, primarily shared_buffers for buffer pool memory, plus work_mem for per-operation sort and hash memory and maintenance_work_mem for maintenance operations. A starting point is setting shared_buffers to roughly 25 percent of instance RAM and work_mem conservatively around 64 MB, increasing only if disk-based sorts appear in query plans.

_Developers mapping SQL Server settings to PostgreSQL equivalents can track tuning specifics like this on daily.dev._

### How do I label a function's volatility in Babelfish to improve query performance?

Use the sp_babelfish_volatility stored procedure as a post-creation step to classify a function as IMMUTABLE, STABLE, or VOLATILE. IMMUTABLE functions always return the same result for the same input and let the optimizer cache results per unique input value, eliminating redundant calls and boosting performance; VOLATILE is the default and assumes the function can change state or results between calls.

_Those optimizing PostgreSQL-backed migrations can keep up with tuning tricks like function volatility on daily.dev._

## Similar posts on daily.dev

- [PostgreSQL 18 on Amazon Aurora and Amazon RDS: Performance enhancements](https://daily.dev/posts/postgresql-18-on-amazon-aurora-and-amazon-rds-performance-enhancements-lag8ehltp) · AWS Database Blog · 0 upvotes · 0 comments
- [Hatchet](https://daily.dev/posts/hatchet-9ijgag52h) · Hacker News · 0 upvotes · 0 comments
- [Migrating SQL Server to Aurora PostgreSQL: Solving the Real Challenges of Cloud Database Modernization](https://daily.dev/posts/migrating-sql-server-to-aurora-postgresql-solving-the-real-challenges-of-cloud-database-modernizati-fvnjvvn7l) · Security Boulevard · 0 upvotes · 0 comments

---

Tags: [#aws](https://daily.dev/tags/aws), [#database](https://daily.dev/tags/database), [#microsoft-sql-server](https://daily.dev/tags/microsoft-sql-server)

[View this post on daily.dev](https://daily.dev/posts/babelfish-for-aurora-postgresql-performance-tuning-ugkvx7bx6)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Babelfish for Aurora PostgreSQL performance tuning","url":"https://daily.dev/posts/babelfish-for-aurora-postgresql-performance-tuning-ugkvx7bx6","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/babelfish-for-aurora-postgresql-performance-tuning-ugkvx7bx6"},"datePublished":"2026-10-01T16:45:01.245Z","dateModified":"2026-10-01T16:49:00.829Z","description":"A detailed technical walkthrough covers how to tune Babelfish for Aurora PostgreSQL after migrating SQL Server workloads. It covers monitoring tools...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/b642797417fd3fbe7327ffd601b09180?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/b642797417fd3fbe7327ffd601b09180?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"AWS Database Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"AWS Database Blog","logo":"https://media.daily.dev/image/upload/s--En-avd2a--/f_auto,q_auto/v1780213446/logos/aws-database-blog?_a=BAMAMiWQ0","url":"https://daily.dev/sources/aws-database-blog"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/babelfish-for-aurora-postgresql-performance-tuning-ugkvx7bx6","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"aws,database,microsoft-sql-server","timeRequired":"PT15M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"AWS Database Blog","item":"https://daily.dev/sources/aws-database-blog"},{"@type":"ListItem","position":3,"name":"Babelfish for Aurora PostgreSQL performance tuning"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/babelfish-for-aurora-postgresql-performance-tuning-ugkvx7bx6#faq","mainEntity":[{"@type":"Question","name":"How do I enable T-SQL query hints in Babelfish for Aurora PostgreSQL?","acceptedAnswer":{"@type":"Answer","text":"Query hints using pg_hint_plan are supported starting with Babelfish version 2.3.0. Run the stored procedure sp_babelfish_configure to turn on the enable_pg_hint parameter, after which Babelfish recognizes T-SQL hints like INDEX, JOIN, MAXDOP, and FORCE ORDER included directly in queries. daily.dev surfaces practical guidance like this for teams tuning Babelfish migrations off SQL Server."}},{"@type":"Question","name":"What PostgreSQL parameter is equivalent to SQL Server's max server memory setting for Aurora PostgreSQL tuning?","acceptedAnswer":{"@type":"Answer","text":"SQL Server's single max server memory setting maps to multiple PostgreSQL parameters, primarily shared_buffers for buffer pool memory, plus work_mem for per-operation sort and hash memory and maintenance_work_mem for maintenance operations. A starting point is setting shared_buffers to roughly 25 percent of instance RAM and work_mem conservatively around 64 MB, increasing only if disk-based sorts appear in query plans. Developers mapping SQL Server settings to PostgreSQL equivalents can track tuning specifics like this on daily.dev."}},{"@type":"Question","name":"How do I label a function's volatility in Babelfish to improve query performance?","acceptedAnswer":{"@type":"Answer","text":"Use the sp_babelfish_volatility stored procedure as a post-creation step to classify a function as IMMUTABLE, STABLE, or VOLATILE. IMMUTABLE functions always return the same result for the same input and let the optimizer cache results per unique input value, eliminating redundant calls and boosting performance; VOLATILE is the default and assumes the function can change state or results between calls. Those optimizing PostgreSQL-backed migrations can keep up with tuning tricks like function volatility on daily.dev."}}]}
```

