Skip to content

Instantly share code, notes, and snippets.

use testing;
go
create type MyStringType from varchar(256);
go
create table TestMyString
(
ThisIsMyString MyStringType not null
);
go
sp_help TestMyString
Import-Module dbatools;
$SqlInstance = 'localhost\sql17';
$MyDB = 'SequenceTesting';
$TableTime = Measure-Command {
(1..100) | foreach-object -parallel {
Invoke-DbaQuery -SqlInstance $sqlinstance -query "declare @newid int; exec GetNextNumberTable @newid" -Database $MyDB -As SingleValue | Out-Null;
}
};
"Time to get numbers from table: $($TableTime.TotalSeconds)";
$SequenceTime = Measure-Command {
USE master;
DROP DATABASE IF EXISTS SequenceTesting;
GO
CREATE DATABASE SequenceTesting;
GO
USE SequenceTesting;
GO
CREATE sequence ABetterWay start
WITH 1 increment BY 1;
SELECT NEXT value
FOR ABetterWay;
CREATE TABLE SequenceHolder (
id INT identity(1, 1)
,BecauseINeedSomething BIT DEFAULT 0
);
CREATE OR ALTER PROCEDURE GetNextNumberTable
AS
BEGIN
DECLARE @newid INT;
-- Original version
SELECT DISTINCT location
,stuff((
SELECT ',' + cast(a2.npa AS CHAR(3))
FROM areacodes a2
WHERE a2.location = a.location
order by a2.npa
FOR XML PATH('')
), 1, 1, N'') AS areacodes
FROM areacodes a
SELECT location
,string_agg(npa, ',') AS AreaCodes
FROM areacodes
ORDER BY location;
SELECT DISTINCT location
,stuff((
SELECT ',' + cast(a2.npa AS CHAR(3))
FROM areacodes a2
WHERE a2.location = a.location
FOR XML PATH('')
), 1, 1, N'') AS areacodes
FROM areacodes a
ORDER BY location;
-- Original
SELECT DISTINCT location
,stuff((
SELECT ',' + cast(a2.npa AS CHAR(3))
FROM areacodes a2
WHERE a2.location = a.location
FOR XML PATH('')
), 1, 1, N'') AS areacodes
FROM areacodes a
ORDER BY location;
Get-Module -ListAvailable | `
Where-Object {$null -ne $PSItem.RepositorySourceLocation -and $PSItem.ModuleBase -like "$($env:Userprofile)*"} | `
Select-Object -Unique -Property Name | `
Update-Module;