Schema review and dependency mapping
Tables, views, packages, triggers and the PowerBuilder DataWindows that touch them. The map you need before any structural change is considered.
Oracle, SQL Server and PostgreSQL work under live PowerBuilder applications. PL/SQL and T-SQL refactor, index strategy, execution-plan tuning, DataWindow query optimization — done surgically while the system stays in production.
Database work under a live PowerBuilder application is high-risk if done loosely. Each item below is a discrete work product with measurable before/after — so it is obvious whether the change helped, hurt or did nothing.
Tables, views, packages, triggers and the PowerBuilder DataWindows that touch them. The map you need before any structural change is considered.
Existing Oracle PL/SQL: code review, anti-pattern flags, parameter-vs-substitution analysis, exception handling, bind-variable hygiene. Output: ranked refactor list.
Same for SQL Server: stored procedures, views, triggers, cursors-vs-set-operations, parameter sniffing exposure. Ranked refactor list and quick wins separated from structural changes.
Which indexes are missing, which are unused, which are blocking inserts. Execution-plan analysis on the actual hot queries — not theoretical ones.
Locking patterns, deadlock hotspots, transactions that should have committed earlier. Common cause of mysterious slowness, often invisible until measured.
Optimizing the SQL generated by PowerBuilder DataWindows without touching the UI: retrieval-arguments, filter pushdown, paging strategy, server-side cursors where they belong.
How the application opens connections, how it holds them, what happens during network blips. Often a single configuration change pays for the whole engagement.
Oracle 11g → 19c → 23ai. SQL Server 2014 → 2022. MSSQL → PostgreSQL evaluation. Concrete plan with PB compatibility audit before any migration starts.
Database engagements usually surface because of a number on a dashboard — response time, lock count, CPU. The trigger is concrete; the cause rarely is.
Five years ago it was fine. Today users wait. Hardware was upgraded twice and didn't help. The bottleneck is in the SQL — probably not where everyone assumes.
Oracle 11g (or 12c, or 19c) is approaching end of support. The DBA team is ready. The PowerBuilder application is the only blocker — compatibility unknown, character-sets uncertain.
Random transaction failures, retries that don't help, finger-pointing between teams. We profile the locking patterns, find the true offender and fix it without redesigning the schema.
Large DataWindow reports running against the same database that handles user transactions. Performance collapses at month-end. We separate the workloads cleanly.
Performance work without baseline is theatre. We invest in measurement first and surgical fixes second. Most engagements move a single dial dramatically rather than nudging ten.
Capture real workload: top queries by time, by frequency, by lock waits. Establish numbers we can compare against later. No guessing.
1 weekFind the actual bottleneck — often surprising. Sometimes it's a missing index; sometimes it's connection pooling; sometimes it's a forgotten loop in PB that fires 10,000 single-row queries.
1–2 weeksSurgical changes, one at a time, each measured before and after. Rollback ready for every change. Production unaffected.
scoped · weeksWhat changed, why, what to monitor going forward, what the next likely bottleneck is. Your DBA inherits a clear picture, not a black box.
1 weekUsually no, but the failure modes are specific: character-set differences (especially around AL32UTF8), deprecated PL/SQL features, RETURNING clauses, sequences, JSON support, hint syntax. We test these explicitly before the upgrade rather than discovering them in production. Most upgrades go through cleanly once the risks are mapped.
Yes, but it's substantial work — and worth scoping seriously before committing. PowerBuilder is database-agnostic, but stored procedures don't port automatically: T-SQL and PL/pgSQL look similar and behave differently. We do the porting properly and ship a regression suite.
DataWindow queries are generated, but the inputs are under our control: retrieval arguments, filter expressions, sort/group behaviour. Often the fix is in the input, not the query itself. When deeper changes are needed, we use Stored-Procedure DataWindows that hide the change behind a stable interface.
Almost always yes. PowerBuilder applications classically hold long-lived connections with substantial state. On modern infrastructure (Citrix, RDS, virtualized environments), that pattern silently kills throughput. Switching to a proper pool, with right-sized timeouts, often delivers a 2× improvement on its own.
Three places, in order: database character set (NLS_LANG for Oracle, collation for SQL Server), ODBC driver settings, PowerBuilder runtime locale. The bug is almost always at one of those boundaries. We've debugged this enough times to know the order to check.
Send a short description: which database, version, the symptom you're seeing, and what's been tried. We'll reply within one business day with a practical next step.
Database work often runs alongside modernization (upgrading the engine) or support (keeping the application stable while changes ship). We sequence them so the live system stays in production.
Production support, troubleshooting, small fixes, stabilization and continuity for systems that are running but no longer easy to maintain in-house.
Upgrade planning, PowerBuilder 2022 / 2025 readiness, UI improvements, deployment modernization, PowerServer / PowerClient strategy.
SAP, REST APIs, reporting systems, PDF/document workflows, external platforms — bridging PowerBuilder cleanly into the wider enterprise stack.
Architecture review, code review, mentoring, project coordination and rescue consulting — senior eyes on the difficult decisions that protect the system.
Reliable monthly access to rare PowerBuilder expertise without hiring a full-time developer. Reserved capacity, predictable response time.