SQL Server Database browsing without SQL

Jens Theisen

Benutzer
Beiträge
9
Hi, ich habe schonmal über SQuiL (squil.net) berichtet, jetzt gibt es eine neue Version mit rundimentären Editierfähigkeiten.

SQuiL ist ein SQL Server Datenbankbrowser (Desktop und Web) der das Browsen einer Datenbank ohne SQL erlaubt:


220196644-08e7b43d-2c4e-4d15-8452-c0d1d44c81ac.gif

(hier sieht man die AdventureWorks-Datenbank, eine online-Version befindet sich hier.

Jeder index in der Datenbank wird durch eine Reihe von Suchfeldern repräsentiert. Diese erlauben das Suchen auf dem entsprechenden Index. Die Auswahl eines beeinflusst dementprechend auch die Reihenfolge der Ergebnisse:


220196690-d2504e88-9d28-497d-bb55-9f4628b7c515.gif


(dieses Beispiel ist auf einer von den StackOverflow-Dumps erzeugten Datenbank - die Indexe wurden von mir hinzugefügt)

Hier suche ich mein eigenes Profil über Name und Anlegedatum:

220196699-b252a55e-5163-4579-ad2e-f46beb5cd274.gif


Kleine Tabellen lassen sich auch scannen. Hierbei wird der Suchbegriff mit allen geeigneten Spalten verglichen. Für Textspalten wird ein Substring-Matching verwendet:

220196705-16feaa46-9058-451d-96f0-c90a34e43760.gif


In der Praxis macht es oft Sinn, ein Tool wie SSMS in Kombination mit SQuiL zu verwenden. Etwa kann man mit SQuiL leicht eine bestimmte Reihe finden und dann den WHERE-clause Kopieren (nur in der Desktop-Version):

220196714-a7d12765-664d-4437-ba38-6f3d2a739066.gif


In der neuesten Version ist rudimentäres Editieren möglich:

220196720-e0b8147f-a026-4aed-8640-7f6af8d64a2c.gif


Es existiert eine Web-Version als Docker-Image im Docker-Hub und eine Desktop-Version im Microsoft-Store (siehe squil.net). Feedback ist sehr willkommen!
 
Werbung:
Dann fällt mir auf die Schnelle auf, dass (meiner Meinung nach) die Where-Bedingungen nicht händisch angegeben werden müssen, sondern eine Liste möglicher Einträge in einer Dropdown-Liste aufscheinen (händisch angeben soll natürlich bleiben)

evtl auch eine Checkbox einbauen, ob rückwärts sortiert werden soll.
das creationdate automatisch auf now()::date setzen.

aber einmal eine andere Frage:
Für wen/was erstellst du ein solches programm?

EDIT:
Evtl. auch aggregatsfunktionen und group py funktion einbauen (falls noch nicht vorhanden)
Verliere teils den Überblick, weil riesige Bilder...
 
Danke für die Anmerkungen, halte ich auch alles für sinnvoll.

Das mit den Aggregatsfunktionen ginge für kleine Tabellen, für große ist es ein Performance-Problem (SQuiL's Design-Philosophie ist, dass alles außer Scanning augenblickliche Resultate liefern soll). Dass die Blöcke teils zu groß sind, sehe ich auch so.

Das Ziel ist die Nische zwischen SSMS und einer custom-App (für ein spezielles Schema).

Ich habe mich als Entwickler häufig geärgert, dass selbst simple Änderungen an den Datenbanken meiner Anwendungen immer sehr viel manuelles SQL-Hickhack benötigen. Man hat nicht immer UIs die alles abdecken, oft hat man in erster Linie nur das UI für die Kunden.

Daneben gibt es auch den Anwedungsfall "internes Web-Interface", also etwa wie phpMyAdmin, aber mehr mit Navigation über foreign-keys, also "semantischer".
 
Sieht gut aus. Schwer zu beurteilen, wie es in der Nutung ist.
Ich würde auch nach nicht indizierten Feldern suchen wollen. Als Entwickler bin ich gewöhnt, SQL zu schreiben, wie ich es brauche.
Eine Adhoc Suche kostet natürlich auch bissl Resourcen... nur über indizierte Felder ist es wahrscheinlich zu verschmerzen.
Die Idee so ein Universalprogramm zu haben, ist ja nicht neu. Ich lande dann immer bei einer DB IDE, wo ich alle Freiheiten hab.
Du müsstest also vielleicht mal irgendwo fragen, wo die Leute anderen Fokus haben.
 
Sieht gut aus. Schwer zu beurteilen, wie es in der Nutung ist.
Ich würde auch nach nicht indizierten Feldern suchen wollen. Als Entwickler bin ich gewöhnt, SQL zu schreiben, wie ich es brauche.
Eine Adhoc Suche kostet natürlich auch bissl Resourcen... nur über indizierte Felder ist es wahrscheinlich zu verschmerzen.
Die Idee so ein Universalprogramm zu haben, ist ja nicht neu. Ich lande dann immer bei einer DB IDE, wo ich alle Freiheiten hab.
Du müsstest also vielleicht mal irgendwo fragen, wo die Leute anderen Fokus haben.
Es ersetzt auch sowas wie SSMS in keinster Weise, aber wenn du z.B. ein paar ids für bestimmte Reihen rausfischen willst, um sie dann in SSMS zu nutzen, kann eine simultane Nutzung beider Tools sinnvoll sein (siehe das zweitletzte Beispiel im OP).

Über kleine Tabellen (nach einer festen Heuristik) kannst du auch in beliebigen Spalten scannen - du kannst das nur (noch) nicht auf bestimmte Spalten einschränken.
 
Ich finde es grundsätzlich interessant auch wenn ich leider keine Zeit finde sowas ausgiebig zu testen. Zwei Fragen hätte ich:
1) Ist es sinnvoll direkt Ergebnisse zu zeigen (vor allem in so einer Kachelform) wenn es viele Treffer gibt? Ich bin da irgendwie skeptisch. Auf jeden Fall vermisse ich eine Angabe der Anzahl der Treffer irgendwo.
2) Ich habe mich in der Vergangenheit schon öfter geärgert das es keine wirklich elegante Möglichkeit gibt über eine ganze DB zu suchen. Habe da auch selber schon SQL Scripte gebastelt aber ich habe hier z.B. eine DB mit 16.000 Tabellen und natürlich ohne Fremdschlüssel in der DB selbst in der ich versuche Zusammenhänge zu finden. Wäre dein Tool dafür ein Ansatz bzw. planst du in der Richtung was zu entwickeln?
 
2) Ich habe mich in der Vergangenheit schon öfter geärgert das es keine wirklich elegante Möglichkeit gibt über eine ganze DB zu suchen. Habe da auch selber schon SQL Scripte gebastelt aber ich habe hier z.B. eine DB mit 16.000 Tabellen und natürlich ohne Fremdschlüssel in der DB selbst in der ich versuche Zusammenhänge zu finden. Wäre dein Tool dafür ein Ansatz bzw. planst du in der Richtung was zu entwickeln?
Dafür gibt es kostenlose Addons fürs SSMS
 
So ganz erschließt sich mir Sinn des Tools noch nicht. Muss ich mir mal anschauen. Außerdem wollte ich mal wissen was die Vollversion der Adventureworks 2019 für exotische SQL Server Features nutzt?
 
Nein, gar nicht, ich kann das ganz gut. Ich dachte nur, wenn Du schon einen ganzen Beitrag spendierst, der die Existenz solcher Software angibt, wäre es auch für Dich als Kenner nicht schwer gewesen noch 3-10 Buchstaben für den Namen einzutippen. Z.B. von Deinem favorisierten Addon für die Suche durch eine ganze DB.

Wenn ich danach suche, erhalte ich 20 Mio Ergebnisse, ohne eine Idee, welches davon wirklich gut ist.
 
Werbung:
Ich finde es grundsätzlich interessant auch wenn ich leider keine Zeit finde sowas ausgiebig zu testen. Zwei Fragen hätte ich:
1) Ist es sinnvoll direkt Ergebnisse zu zeigen (vor allem in so einer Kachelform) wenn es viele Treffer gibt? Ich bin da irgendwie skeptisch. Auf jeden Fall vermisse ich eine Angabe der Anzahl der Treffer irgendwo.
2) Ich habe mich in der Vergangenheit schon öfter geärgert das es keine wirklich elegante Möglichkeit gibt über eine ganze DB zu suchen. Habe da auch selber schon SQL Scripte gebastelt aber ich habe hier z.B. eine DB mit 16.000 Tabellen und natürlich ohne Fremdschlüssel in der DB selbst in der ich versuche Zusammenhänge zu finden. Wäre dein Tool dafür ein Ansatz bzw. planst du in der Richtung was zu entwickeln?
Verschiedene Ansichten (Kacheln/Tabelle) ist sicher sinnvoll. Anzahl der Treffer ist sicher auch sinnvoll für kleine Tabellen. Für große ist das ein Performance-Problem (Datenbanken können nicht schnell zählen).

Suche über die ganze Datenbank ist auch interessant, aber das kann Squil auch noch nicht. Da gibt's natürlich auch Performance-Fragen.
 
Zurück
Oben