41554 blogs · [ { "id": "01a0873d-e319-7290-b8c6-dc2b3ed6e4a6", "title": "Creating a Pulsing Conducting Baton - Part 1", "url": "https://bertwagner.com/posts/creating-a-pulsing-conducting-baton-part-1/", "published_at": "2026-05-16T19:00:00+00:00" }, { "id": "01a0873d-e319-7290-b8c6-dc2b3fc7b7ec", "title": "An LLM Saved My ATtiny85 From Certain Death", "url": "https://bertwagner.com/posts/an-llm-saved-my-attiny85-from-certain-death/", "published_at": "2026-01-07T02:00:00+00:00" }, { "id": "01a0873d-e319-7290-b8c6-dc2b3fe1edfb", "title": "Self-Hosting a Photo Server the Whole Family Can Use", "url": "https://bertwagner.com/posts/self-hosting-a-photo-server-the-whole-family-can-use/", "published_at": "2025-12-24T12:00:00+00:00" }, { "id": "01a0873d-e319-7290-b8c6-dc2b40956326", "title": "SplashFlag - Building an IoT Swimming Notification Device from Scratch", "url": "https://bertwagner.com/posts/splashflag-building-an-iot-swimming-notification-device-from-scratch/", "published_at": "2025-10-01T11:00:00+00:00" }, { "id": "01a0873d-e319-7290-b8c6-dc2b4190f6b4", "title": "Talkie - a simple, private, responsive interface for LLMs", "url": "https://bertwagner.com/posts/talkie-a-chatgpt-clone/", "published_at": "2024-06-10T11:00:00+00:00" }, { "id": "01a0873d-e319-7290-b8c6-dc2b422e4f50", "title": "Crosstream - Efficient Cross-Server Joins on Slow Networks in Python", "url": "https://bertwagner.com/posts/crosstream-efficient-cross-server-joins/", "published_at": "2023-11-13T12:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e453d0eaab", "title": "jurn - A Command Line Tool for Keeping Track of Your Work", "url": "https://bertwagner.com/posts/jurn-a-command-line-tool-for-keeping-track-of-your-work/", "published_at": "2022-12-19T12:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e45431300b", "title": "Using curl to Automate Multipage Logins", "url": "https://bertwagner.com/posts/using-curl-to-automate-multipage-logins/", "published_at": "2022-03-03T12:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e4549855f2", "title": "Recursively Querying Row Groups", "url": "https://bertwagner.com/posts/recursively-querying-row-groups/", "published_at": "2020-08-25T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e45578737e", "title": "Should I Transform My Data In My SQL Query?", "url": "https://bertwagner.com/posts/should-i-transform-my-data-in-my-sql-query/", "published_at": "2020-07-29T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e45661bb57", "title": "Moving 1/3 of a heap", "url": "https://bertwagner.com/posts/moving-1-3-of-a-heap/", "published_at": "2020-07-22T10:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e45665a118", "title": "COMING SOON - New Content", "url": "https://bertwagner.com/posts/coming-soon-new-content/", "published_at": "2020-07-16T10:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e457265289", "title": "Using Python And NetworkX To Build A Twitter Follower Recommendation Engine", "url": "https://bertwagner.com/posts/using-pythons-networkx-for-twitter-graph-analysis/", "published_at": "2020-01-07T12:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e457ffba7d", "title": "SQL Server Converts Numbers to Asterisks", "url": "https://bertwagner.com/posts/sql-server-converts-numbers-to-asterisks/", "published_at": "2019-12-17T12:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e458c322c3", "title": "Azure SQL vs Azure Table Storage", "url": "https://bertwagner.com/posts/deciding-between-azure-sql-and-azure-table-storage/", "published_at": "2019-12-03T12:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e458c3d37c", "title": "When a SQL UPDATE Statement DELETES Rows", "url": "https://bertwagner.com/posts/when-a-sql-update-statement-deletes-rows/", "published_at": "2019-11-26T12:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e4594b59e1", "title": "First Time Speaking at PASS Summit", "url": "https://bertwagner.com/posts/first-time-speaking-at-pass-summit/", "published_at": "2019-11-12T12:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e4598fa342", "title": "SQL Server 2019 Feature Power Rankings", "url": "https://bertwagner.com/posts/sql-server-2019-feature-power-rankings/", "published_at": "2019-10-29T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e4599a14aa", "title": "SQL Server Stored Procedures vs Functions vs Views", "url": "https://bertwagner.com/posts/sql-server-stored-procedures-vs-functions-vs-views/", "published_at": "2019-10-22T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e45a7640aa", "title": "Are Stored Procedures Faster Than Stand-Alone Queries?", "url": "https://bertwagner.com/posts/are-stored-procedures-faster-than-stand-alone-queries/", "published_at": "2019-10-15T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e45af80c5a", "title": "Communicating Effectively at the Workplace", "url": "https://bertwagner.com/posts/communicating-effectively-at-the-workplace/", "published_at": "2019-10-08T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e45bb32856", "title": "More \"Wrong\" SQL Server Math - Floating Point Errors", "url": "https://bertwagner.com/posts/more-wrong-sql-server-math-floating-point-errors/", "published_at": "2019-10-01T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e45c0d223e", "title": "SQL Server's \"Wrong\" Math", "url": "https://bertwagner.com/posts/sql-servers-wrong-math/", "published_at": "2019-09-24T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e45cf26821", "title": "SQL Server Quick Tips", "url": "https://bertwagner.com/posts/sql-server-quick-tips/", "published_at": "2019-09-17T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e45ded04bf", "title": "Tracking Who Last Changed a Row", "url": "https://bertwagner.com/posts/tracking-who-last-changed-a-row/", "published_at": "2019-09-10T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e45e9398e8", "title": "Whitespace, Letter Case, and Other Things That Prevent Plan Reuse", "url": "https://bertwagner.com/posts/whitespace-letter-case-and-other-things-that-prevent-plan-reuse/", "published_at": "2019-09-03T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e45eb11d6d", "title": "How I Troubleshoot SQL Server Execution Plans", "url": "https://bertwagner.com/posts/how-i-troubleshoot-sql-server-execution-plans/", "published_at": "2019-08-27T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e45f7cb6f7", "title": "SQL Server Execution Plan Operators", "url": "https://bertwagner.com/posts/sql-server-execution-plan-operators/", "published_at": "2019-08-13T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e460396e33", "title": "5 Things You Need To Know When Reading SQL Server Execution Plans", "url": "https://bertwagner.com/posts/5-things-you-need-to-know-when-reading-sql-server-execution-plans/", "published_at": "2019-08-06T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e4603dfdae", "title": "Execution Plans: Statistics", "url": "https://bertwagner.com/posts/execution-plans-statistics/", "published_at": "2019-07-30T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e4608248d6", "title": "Introduction to SQL Server Execution Plans", "url": "https://bertwagner.com/posts/introduction-to-sql-server-execution-plans/", "published_at": "2019-07-23T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e460fbc360", "title": "How I Continuously Learn About SQL Server", "url": "https://bertwagner.com/posts/how-i-continuously-learn-about-sql-server/", "published_at": "2019-07-16T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e4617fd585", "title": "SELECT Expression Execution Order", "url": "https://bertwagner.com/posts/select-expression-execution-order/", "published_at": "2019-07-09T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e461d3fa7e", "title": "Behind the Scenes: How I Create Weekly Technical Videos", "url": "https://bertwagner.com/posts/how-i-make-technical-videos/", "published_at": "2019-07-02T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e4623d4fbc", "title": "Multiple Identity Inserts", "url": "https://bertwagner.com/posts/multiple-identity-inserts/", "published_at": "2019-06-25T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e462566d78", "title": "Trailing Spaces in SQL Server", "url": "https://bertwagner.com/posts/trailing-spaces-in-sql-server/", "published_at": "2019-06-18T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e462de422d", "title": "Joker's Wild", "url": "https://bertwagner.com/posts/jokers-wild/", "published_at": "2019-06-11T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e463ae613b", "title": "CHOOSE() in SQL Server", "url": "https://bertwagner.com/posts/choose-in-sql-server/", "published_at": "2019-06-04T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e4640595cf", "title": "12 Ways To Rewrite SQL Queries for Better Performance", "url": "https://bertwagner.com/posts/12-ways-to-rewrite-sql-queries-for-better-performance/", "published_at": "2019-05-28T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e464945b4a", "title": "Predicate Execution Order on Mixed Data Type Columns", "url": "https://bertwagner.com/posts/predicate-execution-order-on-mixed-data-type-columns/", "published_at": "2019-05-21T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e465122477", "title": "Animating a Magic 8 Ball in SQL Server Management Studio", "url": "https://bertwagner.com/posts/sql-server-magic-8-ball/", "published_at": "2019-05-14T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e465ae0c29", "title": "Temporary Staging Tables", "url": "https://bertwagner.com/posts/temporary-staging-tables/", "published_at": "2019-05-07T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e4661764d7", "title": "IN vs UNION ALL", "url": "https://bertwagner.com/posts/in-vs-union-all/", "published_at": "2019-04-30T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e46671927e", "title": "Correlated Subqueries vs Derived Tables", "url": "https://bertwagner.com/posts/correlated-subqueries-vs-derived-tables/", "published_at": "2019-04-23T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e4670bbc1f", "title": "Window Functions vs GROUP BYs", "url": "https://bertwagner.com/posts/window-functions-vs-group-bys/", "published_at": "2019-04-16T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e467618080", "title": "Data Type Precedence and Implicit Conversions", "url": "https://bertwagner.com/posts/data-type-precedence-and-implicit-conversions/", "published_at": "2019-04-09T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e467a7c00a", "title": "Testing with Temporary Stored Procedures", "url": "https://bertwagner.com/posts/testing-with-temporary-stored-procedure/", "published_at": "2019-04-02T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e46851057f", "title": "Joining on NULLs", "url": "https://bertwagner.com/posts/joining-on-nulls/", "published_at": "2019-03-26T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e468f608b1", "title": "4 Reasons To Avoid VARCHAR(8000)", "url": "https://bertwagner.com/posts/4-reasons-to-avoid-varchar-8000/", "published_at": "2019-03-19T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e46901c832", "title": "Gaps and Islands Across Date Ranges", "url": "https://bertwagner.com/posts/gaps-and-islands/", "published_at": "2019-03-12T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e4696395c1", "title": "Dipping into the Cookie Jar", "url": "https://bertwagner.com/posts/dipping-into-the-cookie-jar/", "published_at": "2019-03-12T10:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e4698427c4", "title": "Time Zones and Daylight Saving Time", "url": "https://bertwagner.com/posts/time-zones-and-daylight-saving-time/", "published_at": "2019-03-05T11:45:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e469b5a4e1", "title": "Searching Complex JSON Data", "url": "https://bertwagner.com/posts/searching-complex-json-data/", "published_at": "2019-02-26T12:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e46a34e305", "title": "COUNT, DISTINCT, and NULLs", "url": "https://bertwagner.com/posts/count-distinct-and-nulls/", "published_at": "2019-02-19T12:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e46b1ed6a5", "title": "Parsing HTML in SQL Server", "url": "https://bertwagner.com/posts/parsing-html-sql-server/", "published_at": "2019-02-12T12:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e46b624f48", "title": "Why make?", "url": "https://bertwagner.com/posts/why-make/", "published_at": "2019-02-12T11:45:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e46bfe3550", "title": "Automating Database Maintenance with Jess Pomfret and dbatools", "url": "https://bertwagner.com/posts/automating-database-maintenance-with-jess-pomfret-and-dbatools/", "published_at": "2019-02-05T11:51:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e46cea2e7f", "title": "Cardinality: Not Just For The Birds", "url": "https://bertwagner.com/posts/cardinality-isnt-just-for-the-birds/", "published_at": "2019-01-29T12:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e46d64006e", "title": "Optimizing for Ad Hoc Workloads", "url": "https://bertwagner.com/posts/optimizing-for-adhoc-workloads/", "published_at": "2019-01-22T12:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e46e11bff1", "title": "SQL FAILS with Andy Mallon, Erin Stellato, and Mr. Anonymous!", "url": "https://bertwagner.com/posts/sql-fails/", "published_at": "2019-01-15T12:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e46e945ef0", "title": "T-SQL Documentation Generator", "url": "https://bertwagner.com/posts/t-sql-object-documentation-generator/", "published_at": "2019-01-08T12:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e46f75d85b", "title": "Visualizing Hash Match Join Internals And Understanding Their Implications", "url": "https://bertwagner.com/posts/hash-match-join-internals/", "published_at": "2019-01-02T12:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e46fd1217b", "title": "2018 Community Influencer of the Year", "url": "https://bertwagner.com/posts/2018-community-influencer-of-the-year/", "published_at": "2019-01-01T20:39:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e470793be2", "title": "Visualizing Merge Join Internals And Understanding Their Implications", "url": "https://bertwagner.com/posts/visualizing-merge-join-internals-and-understanding-their-implications/", "published_at": "2018-12-18T12:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e470d24463", "title": "Visualizing Nested Loops Joins And Understanding Their Implications", "url": "https://bertwagner.com/posts/visualizing-nested-loops-joins-and-understanding-their-implications/", "published_at": "2018-12-11T12:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e471260cdc", "title": "Two Words For Faster Scalar Functions", "url": "https://bertwagner.com/posts/two-words-for-faster-scalar-functions/", "published_at": "2018-12-04T12:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e471e3acf9", "title": "Brute Forcing SQL Logins and Passwords", "url": "https://bertwagner.com/posts/brute-forcing-sql-logins-and-passwords/", "published_at": "2018-11-27T12:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e472bdd288", "title": "4 SQL Injection Techniques For Stealing Data", "url": "https://bertwagner.com/posts/4-sql-injection-techniques-for-stealing-data/", "published_at": "2018-11-20T12:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e472eabe60", "title": "Bert & Pinal Troubleshoot a Slow Performing SQL Server", "url": "https://bertwagner.com/posts/bert-pinal-troubleshoot-a-slow-performing-sql-server/", "published_at": "2018-11-13T12:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e473c335fb", "title": "Learning New Skills", "url": "https://bertwagner.com/posts/learning-new-skills/", "published_at": "2018-11-06T12:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e474971022", "title": "The 5 Scariest Moments for a SQL Server Developer", "url": "https://bertwagner.com/posts/the-5-scariest-moments-for-a-sql-server-developer/", "published_at": "2018-10-30T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e475268fe6", "title": "Unexpected Shorthand Date Implicit Conversions", "url": "https://bertwagner.com/posts/unexpected-shorthand-date-implicit-conversions/", "published_at": "2018-10-23T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e475e6882c", "title": "Conditionally Returning Rows Based On Query Results", "url": "https://bertwagner.com/posts/conditionally-returning-rows-based-on-query-results/", "published_at": "2018-10-16T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e476412fb3", "title": "The Project Graveyard", "url": "https://bertwagner.com/posts/the-project-graveyard/", "published_at": "2018-10-09T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e47708893b", "title": "Power BI Dashboards, Reports, and Datasets with the SQL Chefs", "url": "https://bertwagner.com/posts/power-bi-dashboards-reports-and-datasets-with-the-sql-chefs/", "published_at": "2018-10-02T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e477a444f3", "title": "Shortchanged with International Money in SQL Server", "url": "https://bertwagner.com/posts/try-parse-convert-strings-to-numbers/", "published_at": "2018-09-25T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e4785ededc", "title": "Extracting JSON Values Longer Than 4000 Characters", "url": "https://bertwagner.com/posts/extracting-json-values-longer-than-4000-characters/", "published_at": "2018-09-18T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e4786da937", "title": "Faking Temporal Tables with Triggers", "url": "https://bertwagner.com/posts/faking-temporal-tables-with-triggers/", "published_at": "2018-09-11T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e479375755", "title": "Does The Order Of Index Columns Matter?", "url": "https://bertwagner.com/posts/does-the-order-of-index-columns-matter/", "published_at": "2018-09-04T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e479a11f42", "title": "Ignoring NULLs with FIRST_VALUE", "url": "https://bertwagner.com/posts/ignoring-nulls-with-first-value/", "published_at": "2018-08-28T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e479de94fe", "title": "FizzBuzz and Multiple Recursive Member CTEs", "url": "https://bertwagner.com/posts/fizzbuzz-and-multiple-recursive-member-ctes/", "published_at": "2018-08-21T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e479eefcbb", "title": "6 Techniques For Troubleshooting Your Code", "url": "https://bertwagner.com/posts/6-techniques-for-troubleshooting-problems-in-your-code/", "published_at": "2018-08-14T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e47a68e4c8", "title": "Displaying Long Values in SSMS", "url": "https://bertwagner.com/posts/displaying-long-values-in-ssms/", "published_at": "2018-08-07T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e47ae4cb75", "title": "Should You Use Index Hints?", "url": "https://bertwagner.com/posts/should-you-use-index-hints/", "published_at": "2018-07-31T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e47b02537f", "title": "Pinal Dave Helps Me Fix My Performance Tuning Problems", "url": "https://bertwagner.com/posts/pinal-helps-me-fix-my-performance-tuning-problems/", "published_at": "2018-07-24T10:58:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e47b423051", "title": "T-SQL Tuesday #104 Roundup", "url": "https://bertwagner.com/posts/t-sql-tuesday-104-roundup/", "published_at": "2018-07-17T10:58:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e47b6bd677", "title": "Building Dynamic Table-Driven Queries", "url": "https://bertwagner.com/posts/building-dynamic-table-driven-queries/", "published_at": "2018-07-10T10:58:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e47bbff3fc", "title": "Code You Would Hate To Live Without (T-SQL Tuesday #104 Invitation)", "url": "https://bertwagner.com/posts/code-youd-hate-to-live-without-t-sql-tuesday-104-invitation/", "published_at": "2018-07-03T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e47c0d5e63", "title": "Filtering Tables, Procedures, And Other Objects In SSMS", "url": "https://bertwagner.com/posts/filtering-tables-procedures-and-other-objects-in-ssms/", "published_at": "2018-06-26T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e47c564408", "title": "Join Elimination: When SQL Server Removes Unnecessary Tables", "url": "https://bertwagner.com/posts/join-elimination-when-sql-server-removes-unnecessary-tables/", "published_at": "2018-06-19T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e47ca43677", "title": "Prioritizing Index Performance Pains - What I Learned From Brent Ozar's Master Index Tuning Class", "url": "https://bertwagner.com/posts/prioritizing-index-performance-pains-what-i-learned-from-brent-ozars-master-index-tuning-class/", "published_at": "2018-06-12T11:00:00+00:00" }, { "id": "01a0873d-e31a-724d-8e4c-18e47d60b082", "title": "4 Ways To Define Lookup Values In A Query", "url": "https://bertwagner.com/posts/4-ways-to-define-lookup-values-in-a-query/", "published_at": "2018-06-05T11:00:00+00:00" }, { "id": "01a0873d-e31b-7277-ba14-d386fc90997e", "title": "What Does The GO Command Do?", "url": "https://bertwagner.com/posts/what-does-the-go-command-do/", "published_at": "2018-05-29T11:00:00+00:00" }, { "id": "01a0873d-e31b-7277-ba14-d386fd7bb5ab", "title": "Converting JSON to SQL Server CREATE TABLE Statements", "url": "https://bertwagner.com/posts/converting-json-to-sql-server-create-table-statements/", "published_at": "2018-05-22T11:00:00+00:00" }, { "id": "01a0873d-e31b-7277-ba14-d386fe005b0b", "title": "Why Is My VARCHAR(MAX) Variable Getting Truncated?", "url": "https://bertwagner.com/posts/why-is-my-varcharmax-variable-getting-truncated/", "published_at": "2018-05-15T11:00:00+00:00" }, { "id": "01a0873d-e31b-7277-ba14-d386fe36be0a", "title": "Contributing to Community", "url": "https://bertwagner.com/posts/contributing-to-community/", "published_at": "2018-05-08T11:00:00+00:00" }, { "id": "01a0873d-e31b-7277-ba14-d386fe512e29", "title": "Is It Possible To Conditionally Index JSON Data?", "url": "https://bertwagner.com/posts/is-it-possible-to-conditionally-index-json-data/", "published_at": "2018-05-01T11:00:00+00:00" }, { "id": "01a0873d-e31b-7277-ba14-d386fefc6ba0", "title": "The Forgotten Fourth SQL Server Recovery Model", "url": "https://bertwagner.com/posts/the-forgotten-fourth-sql-server-recovery-model/", "published_at": "2018-04-24T11:00:00+00:00" }, { "id": "01a0873d-e31b-7277-ba14-d386ffaecf5a", "title": "In-Memory OLTP: A Case Study", "url": "https://bertwagner.com/posts/in-memory-oltp-a-case-study/", "published_at": "2018-04-17T11:00:00+00:00" }, { "id": "01a0873d-e31b-7277-ba14-d38700a87b5b", "title": "3 Essential Tools For The SQL Server Developer", "url": "https://bertwagner.com/posts/3-essential-tools-for-the-sql-server-developer/", "published_at": "2018-04-10T11:00:00+00:00" } ] posts Claim your blog
Back to bertwagner.com
Blog · corpus.blog/blogs/bertwagner.com/posts

bertwagner.com

bertwagner.com

2026

2025

2024

2023

2022

2020

2019

2018