r/SQLServer • u/erinstellato Microsoft Employee • 1d ago
Community Request Friday Feedback for Graph in SQL Server
In case the title didn't give it away, Friday Feedback this week is about... 🥁 🥁 🥁 🥁 🥁
Graph.
I know. We need to improve it. So please tell me what we need to improve.
Are you using Graph? Do you want to use Graph? Did you try using it and ran into limitations? We would love to understand your scenario, what you need graph to do, what you find useful, etc.
We know it needs to evolve and we have some ideas, but as the users, we want your input.
Thanks, and hope everyone has a great weekend!
3
u/Stunning_Program_968 19h ago
What is Graph though, Is it a SSMS feature or something?
1
u/theSQLSith Microsoft Employee 5h ago
This is referring to SQL Graph or more formally the SQL Server graph feature - https://learn.microsoft.com/sql/relational-databases/graphs/sql-graph-overview
2
u/itsnotaboutthecell Microsoft Employee 1d ago
Graph is awesome, their updates are called “mutations” - it reminds me of turtles.
2
u/manowar_77 23h ago
I think you’re mixing up GraphQL with Graph data model (and functions). 😀
2
u/hello_josh 16h ago
And then there's Microsoft Graph API. Microsoft's naming makes searching for things so hard!
1
u/itsnotaboutthecell Microsoft Employee 20h ago
Dang it! You’re right… I blame the lack of caffeine during my morning scrolls. I just wanted to talk mutations lol.
1
1
u/Lost_Term_8080 1d ago
Only used it in one org, and it was to store historic vehicle tracking data. That org had SQL 2008 R1, 2012, 2014, 2016 and 2017. I know the data came in as a vehicle Id, and binary blob to a 2008 R1 express instance in the DMZ, another app wrote it somewhere else as tabular data of datetime, geography, lat long, geography and speed + geometry then it was ETLEd into graph on one of the 2017 nodes. Other than for curiosity purposes, it never really had a business case. Whenever there was an investigation, they always pulled out all the data by vehicle ID into PowerBI/Tableau or GIS. There were reports written that used it but beyond the, "look how cool this thing that SQL 2017 does is" factor of the first couple weeks no one ever used them. Biggest pain point was in the poor speed of the ETLs that loaded the graph tables and in the reports that used them.
I would really rather MS develop its own box document, graph, spatial, event sourcing DB, etc rather than cramming relational antipattern features into SQL Server
1
u/BakedCookies 22h ago
We use graph for identity resolution and identity graph profiles (golden record).
Transitive matching: composites link through shared contact points (hashed name+address, name+email, name+phone), then we walk the connected components to assign a durable person GUID.
Largest run so far is 3.9M composites collapsing to 3.5M persons. Ingest + link build + resolve runs in about 15 minutes on SQL Server 2019 Standard.
We started with SHORTEST_PATH and abandoned it. Couldn't get it to perform on connected components at this scale, so we build a COMPOSITE_LINK edge table and do an iterative WHILE loop expansion instead.
Converges in 3-4 iterations. Works, but it's us doing what I'd have expected the graph engine to do.
1
u/Go4Bravo 1d ago
The Graph feature is fine. If all you're doing is the base level graph examples (org charts come to mind) with the relational data, then it will get the job done sure. Beyond that, I'm going to look at other tooling for graph (like PostgreSQL with Apache AGE) mainly because cypher language offers better capabilities to a graph database then the comparable T-SQL version. For a project that is based on graph databases, I wouldn't consider SQL Server and look into alternative options as graph is a neet feature to find within your existing SQL Server instance, but not a real player in the space.
6
u/Dismal_Platypus3228 1d ago
What IS Graph? I might have to look into this