Database

Free SQL editing and data transfer between databases, Querydog

Manage six types of databases in one place on Windows·Ubuntu·macOS.

WindowsWindows 10 / 11 · 64-bit
Ubuntu LinuxUbuntu 26.04 · x86_64 · DEB
macOSApple Silicon (M1 or later) · DMG

Community is freeProvides SQL editing and basic heterogeneous DDL·data transfer. Pro is paidAdds incremental transfer, scheduling, and Oracle PL/SQL migration.

Querydog is an SQL agent that allows different types of databases to be integrated and used within a single program. From SQL writing to schema management, data copying, backup·scheduling — It is designed to be easy and convenient for database beginners.

OracleMySQLMariaDB PostgreSQLMSSQLSQLite

Installation files for Windows · Ubuntu Linux · macOS

Oracle migration verification · Measured comparison of DB transfer · User manual

Data transfer and comparison between DBs such as Oracle·MariaDB

Data migration

Move table structures and data from one database to another. DDL transfer and data copying are executed separately, and some format differences are automatically converted. After moving, Verification Reportyou can check the transfer results and comparison range. Import/export of Excel·CSV and impact analysis are also provided.

Database Comparison

You can place two databases side by side and check where and how they differ. We summarize whether a table exists only on one side, how the structure (DDL) differs even if the names are the same, and how much the record count differs. This is especially useful when aligning the structures of production and development environments.

Compare two query results row by row NEW

Execute two SQL queries separately and compare the results row by row. We show which rows have changed, which exist only on one side, and which have disappeared, and you can export this to Excel. You can set it to ignore case, leading/trailing spaces, and the time part of dates, making it easy to filter out "essentially identical data."

Free Community vs Paid Pro Features Comparison

Both editions use the same installation file. You can start with the free Community edition, and if you have a Pro license, you can use additional features in the same program.

COMMUNITY

Querydog Community

Free

Functions needed for routine SQL tasks and basic data transfer.

  • Connect to Oracle·MySQL·MariaDB·PostgreSQL·MSSQL·SQLite and edit SQL
  • View/edit table data, import/export files
  • Basic DDL and data transfer between homogeneous and heterogeneous DBs
  • Transfer result reports and query result comparison
  • Use AI SQL features with Ollama or your own prepared API key
Download by version

PRO

Querydog Pro

Paid · License required

Adds repetitive tasks and advanced analytics features to all Community functions.

  • Incremental transfer by key and scheduled execution of transfer, backup, and query
  • DB structure comparison, object permission copying, data audit history
  • Oracle PL/SQL migration
  • Cross DB queries, SQL debugger, visual query builder
  • Data optimization
Apply for Pro license

Key feature comparison

FeaturesCommunity (Free)Pro (Paid)
DB connection, SQL editing, table managementAvailableAvailable
Basic DDL and data transfer (homogeneous and heterogeneous)AvailableAvailable
Transfer result reports and query result comparisonAvailableAvailable
Incremental transfer and scheduled executionPro license requiredAvailable
DB structure comparison and Oracle migrationPro license requiredAvailable
Cross DB queries, SQL debugger, visual query builderPro license requiredAvailable

Community refers to the free usage scope and does not mean open-source license. Please separately check the cost of external AI services and detailed support scope by DB type. Basis for transfer functions and detailed comparison · User manual

Six types of databases on one screen

You can work the same way regardless of which database you use.

Some data types are automatically converted during transfer between DBs. The support scope may vary depending on DB type and version, so check the generated DDL and conversion results before transfer.

Connection passwords are not left in the connection setting file(Connection.ini) and are separated into a separate file in the user account folder for storage.Even if you share the setting file with colleagues or upload it to version control, the password does not go along with it.

Things to check when moving data from Oracle to MariaDB

We disclose transfer methods, type conversions, free range, and validation limits.

Batch transfer between DBs instead of clipboard

Reads multiple rows from the source DB and loads them into the target DB in batches. After checking the DDL preview, execute structure transfer and data copy separately. Transfer screen and mode view

Automatic type conversion and pre-check

Oracle NUMBER(p,s)There are automatic rules, such as converting to MariaDB's DECIMAL(p,s)types. Before executing DDL, you can check the source and target types for each column and warnings about downscaling, and modify and save the target types. Actual value lossless conversion must be verified after transfer. View type review procedures

Community basic transfer and Pro automation

Community provides free basic DDL and data transfer for homogeneous and heterogeneous databases. Incremental transfer, scheduled execution, permission copying, and Oracle PL/SQL migration are in the Pro range. View features by edition

Rechecking interrupted transfers

If source reading is interrupted, the process stops at the current table, and subsequent tables are marked as unprocessed. Tables with failed saves or truncated values are not considered successful. After restoring the connection, you can retry with key comparison synchronization, and matching PK/UNIQUE keys are required on both sides. View retry procedures

Judge the validation scope separately

You can check transfer reports and comparison screens. Matching row counts alone do not guarantee that all values and FKs match. MariaDB Large-scale Transfer Actual Measurement ComparisonChecked the number of rows per table and preservation of existing indexes and DDL. This was not a test to verify the overall value consistency. View implementation basis and verification scope

Oracle → MariaDB PL/SQL conversion verification record

In isolation tests of Querydog 1.0.45 source, 40/40 collected objects were compiled to MariaDB DDL. Among these, the specified input results of 10 newly created test routines and 259 input results of 4 existing business date functions were confirmed. DDL compilation 40/40 does not indicate overall business migration success rate or data transfer completion rate.

TYPE·PIPELINED functions require a change in the calling method, and the full business data, transactions, and external call sites have not yet been verified. View test conditions, improvement history, and remaining constraints

Makes SQL writing easier

Convenient SQL editing environment

Provides basic features for autocomplete, color highlighting, and SQL formatting. Autocomplete identifies which table you are currently querying and shows only the columns that can be used in that context. Executed queries are automatically saved in history (Ctrl+Shift+H), and frequently used queries can be saved as bookmarks. CASE, MERGE The same sentence patterns can be immediately used as code snippets.

Step-by-step trace execution

You can follow a stored procedure or PL/SQL line by line to see how the values change (except for SQLite). When tracing, it executes a temporary copyinstead of touching the original, so there is no worry about changing objects in operation. It also provides a visual query builder and the ability to join tables from different databases into a single SQL (read-only).

Handling large data like photos or documents

Columns containing photos, documents, or long texts are initially ...folded, and only expand when double-clicked. This prevents the screen from becoming heavy. Even if modifying a row fails, only that row is rolled back, and rows corrected by others first are highlighted in orange to indicate a conflict.

Safely, with visual confirmation

you can preview before sending.

Execution plan visualization NEW

Ctrl+Shift+Pshows in a tree format the order in which your SQL is processed within the database when you press it. Steps with high cost or reading many rows are highlighted in red or orange, so you can immediately see where adjustments are needed. Actual ExecutionWhen turned on, you can check actual values, not just estimates (real measurement mode excluded for SQLite).

Prevent accidental deletion in advance NEW

Before executing (F5), the program first scans the SQL. If the syntax is wrong, it catches it and notifies you before sending it to the database. DELETE without WHERE·UPDATE without WHERE·TRUNCATE·DROPFor dangerous statements like this It asks once more, 'Do you really want to execute?'

View schemas and structures at a glance

View table information at a glance

Displays the count, size, lock status, compression status, and description in one line in the table list. With one right-click, you can copy and paste the table, and if the same name exists, (1), (2)It will automatically add a number as shown. Within the same connection, you can also drag with the mouse to move to another schema.

Create and modify table structures

In the table designer, you can edit columns, indexes, foreign keys, and CHECK constraints, and preview the SQL that will be generated. It maintains the ascending/descending settings of foreign keys and indexes that reference other schemas, and will warn you before applying if the number of foreign key columns does not match. Preserves the disabled CHECK state in MSSQL and the NOT VALID status in PostgreSQL, and generates SQL to change the PostgreSQL tablespace. Unsupported table option changes are blocked before application. View how to use the table designer

The above structure modifications were verified in the source and automated tests of Querydog 1.0.58. The results of applying to actual production DBs need to be separately validated.

ER diagram

Automatically draws a diagram showing how tables are connected. You can drag and arrange boxes, and the layout you create can be saved and reused. The completed diagram can be exported as SVG, PDF, or PNG to be directly used in meeting materials, and conversely, you can import an SQL file (DDL) to create a diagram.

AI is here to assist

If you explain it verbally, it becomes SQL.

Ask AI to write SQL

If you explain in everyday language, like "Show me the top 10 products in sales last month," AI will generate the SQL statement for you. You can choose Google Gemini, OpenAI GPT, Anthropic Claude, or even a local AI (Ollama) running on your own computer. Run AIWhen you run a query, it also tells you what part is causing an error and how to fix it.

Look at the execution plan and indexes for answers

If you ask for tuning, like "Check why this query is slow," the execution plan just extracted and the index information on that table are also provided to the AI. So you can receive informed responses, such as "It's scanning the entire table because there's no index."

Operations and management

Data optimization

We analyze which tables are heavy and which indexes are fragmented (fragmentation rate) and automatically generate the SQL needed for optimization (ANALYZE, VACUUM, REINDEX, etc.). We measure how much the character columns are actually used and suggest an appropriate size to reduce wasted space.

Audit History

It automatically records who created which user, who granted or revoked permissions, and which SQL was executed and when. You can view it directly on the screen or export it to CSV for storage, so you can use it with confidence in work environments where change tracking and accountability are required.

Automatic Execution at Scheduled Times

If you register backup, query, and data transfer tasks on a schedule, they will automatically execute at the designated time. A mode that runs with commands only, without a screen, is also provided, so you can integrate it into your company's automation system.

Easy-to-View and Safe User Environment

You can choose between a dark or light screen (9 themes) and adjust the font and row height yourself. Windows (dockable) can be freely arranged and will appear in the same place even after restarting. The core parts of the program are distributed in compiled form, making them difficult to tamper with.

Querydog vs DBeaver: Data Transfer Speed Comparison

We compared the time it takes to copy large amounts of data between MariaDB, Oracle, PostgreSQL, SQL Server (MSSQL), and SQLite. You can check whether DBeaver’s bulk load option was used, the improvement results by Querydog version, and the verification scope together.

Record update: October 29, 2026 · Querydog source tests version 1.0.11~1.0.24 · DBeaver 26.2.3

This is the actual measurement record for 11 transfer directions conducted so far. Tests with different numbers of rows, indexes, and environments are not compared in a single speed ranking. The DBeaver column shows previous measurements for that direction, and unmeasured or failed cases were not converted into time. 37 tests involve 6,387,550 rows, and 36 tests involve 4,444,314 rows excluding one large table.

Measurement results by transfer direction
Transfer directionQuerydog versionQuerydog timeDBeaver recordData and index conditionsVerification
MariaDB → MariaDB1.0.115 minutes 50.0 secondsApproximately 5 minutes 22~28 seconds37 items · 6,387,550 rows · 45 indexesVerify row count and preservation of existing DDL/indexes
MariaDB → Oracle1.0.124 minutes 21.05 secondsApproximately 4 minutes 5~34 seconds37 items · 6,387,550 rows · 0 indexesRow count matches after adjusting character length
Oracle → MariaDB1.0.15 / retention code2 minutes 41.25~41.26 seconds3 minutes 0.03~4.13 seconds37 items · 6,387,550 rows · 0 indexesMeasured twice · row count matches · no verification of all values
MariaDB → PostgreSQL1.0.202 minutes 54.70~55.88 seconds2 minutes 51.22 seconds36 items · 4,444,314 rows · 0 indexesMeasured twice · Number of rows and separate content hash match
PostgreSQL → MariaDB1.0.213 minutes 1.89~2.27 seconds4 minutes 49.79 seconds36 items · 4,444,314 rows · 42 indexesMeasured twice · Matches checksum with DBeaver loaded results
MariaDB → MSSQL1.0.229 minutes 42.26 secondsBulk load test failed36 items · 4,444,314 rows · 34 primary key indexesQuerydog total row count · Sample 4,421 rows match
MSSQL → MariaDB1.0.223 minutes 45.81 secondsNot measured36 items · 4,444,314 rows · 34 primary key indexesQuerydog total row count · Sample 4,421 rows match
Oracle → PostgreSQL1.0.222 minutes 55.01 secondsPrevious bulk load 3 minutes 9.76 seconds36 items · 4,444,314 rows · 0 indexesRecent test row count · Sample 4,421 rows match; No simultaneous re-measurement with DBeaver
PostgreSQL → Oracle1.0.233 minutes 27.17 secondsNot measured36 items · 4,444,314 rows · 0 indexesRow count · Sample 4,421 rows match
MariaDB → SQLite1.0.243 minutes 23.45 secondsNot measured36 items · 4,444,314 rows · 0 indexes · LocalRow count · Sample 4,421 rows match
SQLite → MariaDB1.0.242 minutes 40.05 secondsNot measured36 items · 4,444,314 rows · 0 indexes · LocalRow count · Round-trip sample 4,421 rows match

History of before and after improvements and failures · Interruptions

Below are the major versions and retest history. The initial comparison and error history of MariaDB forward and Oracle forward have been preserved in the existing detailed record at the bottom of this page.

Optimization and Retest History
TestVersion · ClassificationTime ChangesInterpretation and Limitations
Oracle → MariaDB1.0.12 → 1.0.13 → 1.0.14 → 1.0.157 minutes 50.16 seconds → 4 minutes 59.58 seconds → 4 minutes 36.16 seconds → 2 minutes 41.26 seconds24 DDL errors in 1.0.12 measured after calibration for testing. 37 DDLs successfully created in 1.0.13. Not a full precision verification.
Oracle → MariaDB additional candidate1.0.16 Test2 minutes 38.44 seconds / 3 minutes 7.45 seconds / 2 minutes 54.89 secondsThe effect was not reproduced in repetitions, so candidate change was reverted. Retest of the adopted code was 2 minutes 41.25 seconds. The fastest candidate value is not used as the product representative value.
Oracle → PostgreSQL1.0.16 → 1.0.17 → 1.0.18 → 1.0.2231 minutes 46.76 seconds → 6 minutes 23.58 seconds → 3 minutes 23.92 seconds → 2 minutes 55.01 secondsHistory of applying COPY automatic loading, prefetching, etc. Each point is a test, not an experiment separating the individual effect of each change.
Oracle → PostgreSQL / DBeaver26.2.3Basic 9 minutes 14.24 seconds → Bulk loading 3 minutes 9.76 secondsBulk loading and multi-row INSERT 500 turned on together. CSV bulk import confirmed in log; individual effects of the two options are not separated.
MariaDB → PostgreSQL1.0.19 → 1.0.203 minutes 43.14 seconds → 2 minutes 54.70~55.88 secondsBoth measurements with the same final code are within 20 seconds of previous DBeaver actual measurements.
PostgreSQL → MariaDB1.0.20 → 1.0.215 minutes 16.82 seconds → Average 3 minutes 2.08 secondsApplied server cursor and prefetching. In both cases, 42 indexes and checksum matched DBeaver results.
MariaDB → MSSQLPrevious test → 1.0.22Previous stop → 9 minutes 42.26 secondsThe previous 50 minutes or more was an estimate, not an actual measurement. General table OPENJSON input, data type and date handling improved. 8 auxiliary indexes are outside the scope of the test.
MariaDB → MSSQL / DBeaverMicrosoft JDBC 13.4.0.0No completion timeUsed Bulk Copy, commit every 20,000 rows. Stopped due to source data read error; 555,077 rows loaded. The time until the interruption is not compared with the successful completion time.
PostgreSQL → Oracle1.0.22 → 1.0.235 minutes 12.84 seconds → 3 minutes 27.17 seconds105.68 seconds (33.8%) reduction observed. Server cursor, one-batch prefetch, general batch of 10,000 rows.
MariaDB → SQLite1.0.23 → 1.0.243 minutes 45.02 seconds → 3 minutes 23.45 seconds21.57 seconds (9.6%) reduction observed. Optimized general value conversion checks; streaming and prefetch not applied.
SQLite → MariaDB1.0.23 → 1.0.242 minutes 41.35 seconds → 2 minutes 40.05 secondsReverse regression check. Not a result of separate speed improvements.

Measurement method and interpretation scope

Download public summary data (JSON) · Existing detailed comparison of MariaDB · Existing detailed comparison of Oracle

Querydog vs DBeaver: MariaDB data transfer performance comparison

37 tables · 6,387,550 rows · Copy test maintaining 45 existing indexes

Measurement Date: · Internal measurement by Windsoft · Each program run once from Windows GUI

Data was copied from the same source MariaDB to the same remote MariaDB. Before each run, only the data in the target tables was cleared while maintaining the existing table structure and indexes. In this run Querydog took 5 minutes 50.0 seconds, DBeaver about 5 minutes 22~28 seconds, so Querydog took about 22~28 seconds (7~9%) longer.

MariaDB data copy time and post-verification results
Comparison ItemsQuerydog Community 1.0.11DBeaver 26.2.3
Duration5 minutes 50.0 seconds (350.0 seconds)About 5 minutes 22~28 seconds (322~328 seconds)
Time Measurement MethodInternal measurement from start to finish of transfer workerObserved range from execution command to UI task completion
Tables / Total Rows37 / 6,387,550 rows37 / 6,387,550 rows
Row count check per tableAll 37 match the sourceAll 37 match the source
Existing Indexes45 maintained45 maintained
Table Definition (DDL)Matches the pre-run standardMatches the pre-run standard
Error CheckReport: Success 37, Skipped 0, Error 0No error dialog observed
Separate error count not secured

Measurement conditions and result interpretation

Note: The separate execution record of the previous Querydog 1.0.10 was 6 minutes 18.2 seconds. This version 1.0.11 reduced that record by about 28.2 seconds (7.46%). The measured version and the currently available installation file version may differ.

Implementation basis and verification scope of inter-DB transfer · User manual for transfer

MariaDB → Oracle transfer: Actual measurement comparison between Querydog and DBeaver

Measurement date: October 27, 2026 · 37 default tables · Original 6,387,550 rows · Target Oracle 21c XE

Querydog 1.0.12 completed the transfer of 37 tables in 4 minutes 21.05 secondsand in the post-check, the row count of all tables matched the source. This result falls within the previous DBeaver measurement range of about 4 minutes 5~34 seconds. Since the execution method and drivers are different, this is not a test to determine speed superiority between products.

Oracle data loading results for the same corrected tables
ItemsDBeaver 26.2.3Querydog 1.0.11
Before correction
Querydog 1.0.12
After correction
DurationApproximately 4 minutes 5~34 seconds
(245.125~273.854 seconds)
5 minutes 29.09 seconds
(329.09 seconds)
4 minutes 21.05 seconds
(261.05 seconds)
Transfer resultsRow count match for 37 tablesSuccess: 33 / Fail: 4Success: 37 / Errors: 0 / Warnings: 0
Actual loaded row count6,387,550 rows5,997,256 rows6,387,550 rows
Verification of row count by tableAll 37 match33 match / 4 not loadedAll 37 match
Target Index0 items0 items0 items
Execution/Measurement MethodGUI transmission / observation period of execution/termination screenGUI transmission / internal worker measurementUsing an independently executed actual transmission worker like GUI / internal time measurement

Error correction and time changes

The first execution of DBeaver occurred due to differences based on the number of characters and bytes ORA-12899that occurred. After correcting the target string column length based on the character count, the result of retransmission was recorded in the table above. Querydog also used the same corrected table.

In Querydog 1.0.11, 4 tables failed due to case and quotation handling issues in Oracle column names. In 1.0.12, it was modified to preserve the actual column names, reduced repetitive value conversions and row copying, and increased the general table input batch from 5,000 rows to 20,000 rows.

The observed time after modification was approximately reduced by 68 seconds (20.7%). However, the executions before modification include failures for some tables, whereas the executions after modification were all successful, so it cannot be interpreted as a pure performance improvement rate for the same amount of successful executions.

Measurement Conditions and Verification Scope

Transfer comparison for MariaDB targets · Implementation basis and verification scope

Are you looking for alternatives to Navicat and DBeaver?

You can continue tasks such as connecting to multiple databases, executing SQL, and checking table structures and data in Querydog. It is a database management tool for users on Windows, Ubuntu, and macOS handling Oracle, MySQL, MariaDB, PostgreSQL, SQL Server, and SQLite.

Check SQL editing and execution results, schema comparison, data copying and verification, backup, and scheduling functions according to actual tasks. Available features may vary depending on the type and version of the DB.

Review alternatives to Navicat and DBeaver, and guide on using Querydog for each DB. · Check DB migration functions and verification scope.

Start for free, and choose Pro if automation is needed.

Check the current distribution status from the installation file list, review features and verification scope, and then select.

Check free download User manual

Installation files for Windows · Ubuntu Linux · macOS

Querydog Community Privacy Policy