<?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: dbslice</title>
    <description>The latest articles on DEV Community by dbslice (@dbslice).</description>
    <link>https://dev.to/dbslice</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%2F4217817%2F9b07309e-bdee-41c7-8995-3f80dd7bf155.jpg</url>
      <title>DEV Community: dbslice</title>
      <link>https://dev.to/dbslice</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dbslice"/>
    <language>en</language>
    <item>
      <title>Edge Read Slices: Take Read Load Off Your Central Database</title>
      <dc:creator>dbslice</dc:creator>
      <pubDate>Fri, 30 Oct 2026 18:44:26 +0000</pubDate>
      <link>https://dev.to/dbslice/edge-read-slices-take-read-load-off-your-central-database-2cll</link>
      <guid>https://dev.to/dbslice/edge-read-slices-take-read-load-off-your-central-database-2cll</guid>
      <description>&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/FFmebl8Ok34" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;br&gt;
In many companies a single SQL Server or PostgreSQL database answers every read: microservices, web and&lt;br&gt;
mobile apps, branches and point-of-sale terminals. As usage grows, reads compete with writes, and the central&lt;br&gt;
database becomes the bottleneck for everyone.&lt;/p&gt;

&lt;p&gt;This video shows a practical pattern: &lt;strong&gt;keep writes on the central database and move read-only slices of&lt;br&gt;
the data to where they are used&lt;/strong&gt;, in SQLite, PostgreSQL or MariaDB, refreshed by dbSlice on a schedule.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who it is for
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Architects&lt;/strong&gt; looking for a way to cut read traffic on the central database without rewriting the apps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Teams running branches or terminals&lt;/strong&gt; that need local data, even when the link to headquarters is slow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DBAs&lt;/strong&gt; who want the copy to be a scheduled job with a log, not a script someone has to remember.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What the video shows
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;One synchronization per slice.&lt;/strong&gt; A WHERE filter per branch, a key column, Upsert, and an incremental
column such as &lt;code&gt;updated_at&lt;/code&gt; that brings only the rows changed since the last run.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reference tables with the Replicator.&lt;/strong&gt; Tables every branch needs in full are copied in foreign-key
order.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automation.&lt;/strong&gt; The same &lt;code&gt;job.json&lt;/code&gt; runs from the Windows command line (with Task Scheduler) or on a cron
schedule in the Linux Server Edition (Docker), with run history and webhooks on success or failure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Checks.&lt;/strong&gt; Structure compare and key-by-key Record Diff show whether the slice matches the source.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dev and test.&lt;/strong&gt; Copies for development can have sensitive columns masked while they are written.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Honest notes
&lt;/h2&gt;

&lt;p&gt;This is not real-time replication: local data is as fresh as your schedule. The incremental column brings&lt;br&gt;
inserts and updates, not deletes, so plan a periodic full reload of each slice. And measure performance on&lt;br&gt;
your own data before you size the schedule.&lt;/p&gt;

&lt;h2&gt;
  
  
  Read more
&lt;/h2&gt;

&lt;p&gt;The written guide, with the setup step by step, is in&lt;br&gt;
&lt;a href="https://dbslice.net/articles/dbslice-sqlite-edge" rel="noopener noreferrer"&gt;SQLite at the edge&lt;/a&gt;. For scheduling jobs from the command line, see&lt;br&gt;
&lt;a href="https://dbslice.net/automation/database-sync-cli" rel="noopener noreferrer"&gt;database sync from the CLI&lt;/a&gt;. The free version is on the&lt;br&gt;
&lt;a href="https://apps.microsoft.com/detail/9PMS69X1T53Z" rel="noopener noreferrer"&gt;Microsoft Store&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://dbslice.net/blog/edge-read-slices" rel="noopener noreferrer"&gt;dbSlice blog&lt;/a&gt;. dbSlice is a Windows app for data migration, replication and sync between the leading databases.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>sqlite</category>
      <category>postgres</category>
      <category>mariadb</category>
      <category>readreplicas</category>
    </item>
    <item>
      <title>dbSlice in 3 Minutes: Migrate, Replicate and Sync Data</title>
      <dc:creator>dbslice</dc:creator>
      <pubDate>Fri, 30 Oct 2026 18:39:40 +0000</pubDate>
      <link>https://dev.to/dbslice/dbslice-in-3-minutes-migrate-replicate-and-sync-data-2ff5</link>
      <guid>https://dev.to/dbslice/dbslice-in-3-minutes-migrate-replicate-and-sync-data-2ff5</guid>
      <description>&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/biTS1aS7DLQ" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;br&gt;
Most teams that move data between databases end up with a toolbox: one product per engine, a script for the&lt;br&gt;
nightly copy, another for comparing the two sides, and something else to push changes to an API or a queue.&lt;br&gt;
This three-minute video shows how dbSlice puts those jobs in one Windows app and one Linux edition, under one&lt;br&gt;
license.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who it is for
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;DBAs and SREs&lt;/strong&gt; who keep a copy of production up to date and need a job they can schedule, log and rerun.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Teams replacing a system&lt;/strong&gt; that must run old and new databases side by side for months.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Product owners&lt;/strong&gt; who need data moved without a developer writing a one-off script.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What the video shows
&lt;/h2&gt;

&lt;p&gt;The tour runs on real screens:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Migrate, replicate, compare and sync&lt;/strong&gt; across the leading databases: SQL Server, PostgreSQL, Oracle,
MySQL, MariaDB, Firebird, SQLite and InterSystems Caché/IRIS, with MongoDB, Cassandra, Elasticsearch,
Couchbase and Redis as NoSQL targets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Synchronize, with five modes&lt;/strong&gt;, from a full copy to only the rows that changed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Replicator&lt;/strong&gt;, which copies a whole set of tables in foreign-key order.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compare and Record Diff&lt;/strong&gt;, to check both sides key by key.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Selective masking&lt;/strong&gt;, so a test copy does not carry real customer data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Export, Send Data and command-line jobs&lt;/strong&gt;: files, REST APIs, message brokers, and jobs you can run from
Task Scheduler or cron.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Linux Server Edition&lt;/strong&gt;, which runs in a Docker container on your own servers, with several users and
sessions in parallel.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why one tool matters
&lt;/h2&gt;

&lt;p&gt;When migration, sync and comparison live in different products, each one has its own connection settings,&lt;br&gt;
its own logs and its own idea of what a "key" is. In dbSlice, the Synchronize tab, the Replicator and the&lt;br&gt;
command-line jobs share the same engine. A run you test in the app behaves the same way when it runs at&lt;br&gt;
night on a schedule.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;The free version is on the&lt;br&gt;
&lt;a href="https://apps.microsoft.com/detail/9PMS69X1T53Z" rel="noopener noreferrer"&gt;Microsoft Store&lt;/a&gt;. To see how a long-running coexistence&lt;br&gt;
project works in practice, read &lt;a href="https://dbslice.net/use-cases/data-coexistence" rel="noopener noreferrer"&gt;data coexistence&lt;/a&gt;. For speed, with the&lt;br&gt;
conditions behind each number, see &lt;a href="https://dbslice.net/performance" rel="noopener noreferrer"&gt;how fast is dbSlice&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://dbslice.net/blog/dbslice-overview" rel="noopener noreferrer"&gt;dbSlice blog&lt;/a&gt;. dbSlice is a Windows app for data migration, replication and sync between the leading databases.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>datamigration</category>
      <category>databasereplication</category>
      <category>databasesync</category>
      <category>sqlserver</category>
    </item>
    <item>
      <title>How to Read a Database Sync Speed Number</title>
      <dc:creator>dbslice</dc:creator>
      <pubDate>Fri, 30 Oct 2026 18:16:53 +0000</pubDate>
      <link>https://dev.to/dbslice/how-to-read-a-database-sync-speed-number-4jem</link>
      <guid>https://dev.to/dbslice/how-to-read-a-database-sync-speed-number-4jem</guid>
      <description>&lt;p&gt;"Millions of rows per minute" appears on many product pages, including ours. Before you plan a cut-over&lt;br&gt;
weekend around a number like that, it is worth asking what was actually measured. These five questions apply&lt;br&gt;
to any tool, and they are the same ones we answer on our own &lt;a href="https://dbslice.net/performance" rel="noopener noreferrer"&gt;performance page&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Which mode?
&lt;/h2&gt;

&lt;p&gt;An initial load into an empty table is the easiest case: no lookups, no conflicts, just bulk inserts. An&lt;br&gt;
upsert has to find each key on the target and decide between insert and update. "New rows only" and&lt;br&gt;
incremental modes depend on how fast the target can tell what is missing. A number from one mode says little&lt;br&gt;
about another. In our lab, the same PostgreSQL target was 66 to 118 times faster at upsert and "new rows only"&lt;br&gt;
with one option turned on, while the initial load did not change at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Which engines, and where?
&lt;/h2&gt;

&lt;p&gt;SQL Server to SQL Server on the same host is not the same job as SQLite on a laptop to Azure SQL in another&lt;br&gt;
region. Ask for the source, the target and where each one ran.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. What about the network?
&lt;/h2&gt;

&lt;p&gt;Over a WAN link, the network is often the slowest side. A tool that reads and writes at the same time, as&lt;br&gt;
dbSlice does, moves at the pace of whichever side is slower, so the same job can be fast on one link and slow&lt;br&gt;
on another.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. How wide are the rows?
&lt;/h2&gt;

&lt;p&gt;A table of three integer columns and a table with long text and binary columns can differ by an order of&lt;br&gt;
magnitude in rows per second while moving similar bytes. If the benchmark does not say, assume narrow rows.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Was anything tuned?
&lt;/h2&gt;

&lt;p&gt;Indexes dropped during the load, a bigger log, a dedicated network: all legitimate, and all worth knowing.&lt;br&gt;
Our largest run, 12.96 billion rows in about 41 hours (≈88,500 rows/s on average), came from a live production&lt;br&gt;
table of purchase orders with 20 years of history, 40 columns and 9 indexes, migrated into the database of a&lt;br&gt;
new microservice that integrates with Salesforce; the network and both databases were tuned for the load. Next to it we publish a plain-setup number: 31.4 million rows into Azure SQL in&lt;br&gt;
about 30 minutes (≈17,200 rows/s), initial-load mode, SQLite source on a local disk.&lt;/p&gt;

&lt;h2&gt;
  
  
  The only number that counts
&lt;/h2&gt;

&lt;p&gt;Is the one from your own tables, on your own network. Run the job you plan to run, in the mode you plan to&lt;br&gt;
use, and time it. The free version of dbSlice is on the&lt;br&gt;
&lt;a href="https://apps.microsoft.com/detail/9PMS69X1T53Z" rel="noopener noreferrer"&gt;Microsoft Store&lt;/a&gt;; the numbers and conditions we measured are&lt;br&gt;
on &lt;a href="https://dbslice.net/performance" rel="noopener noreferrer"&gt;how fast is dbSlice&lt;/a&gt;, and the video walkthrough is in&lt;br&gt;
&lt;a href="https://dbslice.net/blog/12-billion-rows" rel="noopener noreferrer"&gt;12.96 billion rows in 41 hours&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Related: &lt;a href="https://dbslice.net/migrate/mysql-to-postgresql" rel="noopener noreferrer"&gt;MySQL to PostgreSQL migration&lt;/a&gt; · &lt;a href="https://dbslice.net/migrate/sql-server-to-mysql" rel="noopener noreferrer"&gt;SQL Server to MySQL migration&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://dbslice.net/blog/reading-sync-speed-numbers" rel="noopener noreferrer"&gt;dbSlice blog&lt;/a&gt;. dbSlice is a Windows app for data migration, replication and sync between the leading databases.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>performance</category>
      <category>benchmarks</category>
      <category>datamigration</category>
      <category>databasesync</category>
    </item>
  </channel>
</rss>
