<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ehitel Rodriguez</title>
    <description>The latest articles on DEV Community by Ehitel Rodriguez (@mortroguez).</description>
    <link>https://dev.to/mortroguez</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4090260%2Fc79b28a6-953d-438d-afe5-b98500e14274.png</url>
      <title>DEV Community: Ehitel Rodriguez</title>
      <link>https://dev.to/mortroguez</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mortroguez"/>
    <language>en</language>
    <item>
      <title>Cutting database metadata load times by 80% and adding interactive ER diagrams</title>
      <dc:creator>Ehitel Rodriguez</dc:creator>
      <pubDate>Mon, 24 Aug 2026 15:25:28 +0000</pubDate>
      <link>https://dev.to/mortroguez/cutting-database-metadata-load-times-by-80-and-adding-interactive-er-diagrams-333n</link>
      <guid>https://dev.to/mortroguez/cutting-database-metadata-load-times-by-80-and-adding-interactive-er-diagrams-333n</guid>
      <description>&lt;p&gt;When working with relational databases, slow metadata fetching and lacking visual schema tools quickly become friction points in daily workflows.&lt;/p&gt;

&lt;p&gt;In the latest update of &lt;a href="https://ezql.app/" rel="noopener noreferrer"&gt;EZQL&lt;/a&gt;, I focused on solving two main problems: eliminating connection bottlenecks when inspecting database schemas and introducing an interactive diagram tool.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Parallel Metadata Engine in Go&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Expanding a database in an object explorer requires querying multiple system catalog views: tables, views, stored procedures, functions, triggers, users, and roles.&lt;/p&gt;

&lt;p&gt;Doing this sequentially over a single connection took around 2.0 seconds on moderate schemas. To fix this, I reworked the backend service in Go:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Queries for all 7 object categories now run concurrently across the connection pool using sync.WaitGroup and goroutines.&lt;/li&gt;
&lt;li&gt;Response time dropped from ~2.0s down to ~200ms (&amp;gt;80% reduction).&lt;/li&gt;
&lt;li&gt;Added a 150ms debounced prefetching mechanism for column metadata to keep IntelliSense responsive in the editor.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Interactive Entity-Relationship Diagrams (ERD)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Reviewing foreign key structures directly from table trees can be tedious, so I added a dedicated visual diagram canvas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Draggable table cards connected by dynamic Bezier curves based on foreign key relationships.&lt;/li&gt;
&lt;li&gt;State persistence using localStorage, keeping node positions intact across sessions.&lt;/li&gt;
&lt;li&gt;Export options for SVG, PNG, and clipboard copy.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Trigger Management and Object Tree Cleanup&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Direct status detection for table triggers using sys.triggers (is_disabled).&lt;/li&gt;
&lt;li&gt;Context menu options to enable, disable, alter, or drop triggers without manually writing the DDL statements.&lt;/li&gt;
&lt;li&gt;Visual distinction between Primary Keys, Foreign Keys, and column data types.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you work with SQL Server on macOS, Linux, or Windows, you can test these additions directly on ezql.app.&lt;/p&gt;

&lt;p&gt;Do you usually rely on visual diagrams when working with existing schemas, or do you prefer inspecting constraints via queries?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0ry0cc4lgcrh5ltj01w8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0ry0cc4lgcrh5ltj01w8.png" alt=" " width="799" height="517"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Moving to macOS broke my SQL Server workflow. So I'm building my own client.</title>
      <dc:creator>Ehitel Rodriguez</dc:creator>
      <pubDate>Sat, 22 Aug 2026 23:56:33 +0000</pubDate>
      <link>https://dev.to/mortroguez/moving-to-macos-broke-my-sql-server-workflow-so-im-building-my-own-client-32ne</link>
      <guid>https://dev.to/mortroguez/moving-to-macos-broke-my-sql-server-workflow-so-im-building-my-own-client-32ne</guid>
      <description>&lt;p&gt;When I switched my main workstation to macOS, I hit an unexpected wall: managing Microsoft SQL Server outside of Windows.&lt;/p&gt;

&lt;p&gt;For years, SQL Server Management Studio (SSMS) was my daily driver. Once on a Mac, the reality set in quickly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SSMS is strictly Windows-only.&lt;/li&gt;
&lt;li&gt;Azure Data Studio was discontinued.&lt;/li&gt;
&lt;li&gt;Available alternatives either hid behind steep paywalls or lacked the essential everyday workflows I relied on.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That gap pushed me to start building &lt;a href="https://ezql.app/" rel="noopener noreferrer"&gt;EZQL&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Vision
&lt;/h2&gt;

&lt;p&gt;I didn't just want a lightweight data viewer. My goal is to build a unified, cross-platform client (macOS, Linux, and Windows) that steadily works toward the depth and feature parity of SSMS—while keeping the interface modern, focused, and intuitive.&lt;/p&gt;

&lt;p&gt;Windows users aren't left behind either; the idea is to provide a consistent, native-feeling experience across any OS without unnecessary bloat.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Ongoing Journey
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Building a database client from scratch is full of interesting engineering challenges:&lt;/li&gt;
&lt;li&gt;Streamlining query execution flows.&lt;/li&gt;
&lt;li&gt;Efficient schema handling and state persistence.&lt;/li&gt;
&lt;li&gt;Building clean, responsive result grids that stay out of the way.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Let's Discuss
&lt;/h2&gt;

&lt;p&gt;To anyone working with SQL Server across macOS, Linux, or Windows:&lt;/p&gt;

&lt;p&gt;What are the non-negotiable SSMS features or workflows you rely on the most every day?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl99wf5dr5d9ln2iak3c4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl99wf5dr5d9ln2iak3c4.png" alt="EZQL Preview" width="800" height="516"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>sqlserver</category>
      <category>database</category>
      <category>productivity</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
