Skip to content

Instantly share code, notes, and snippets.

View adamfortuno's full-sized avatar
😁

Adam adamfortuno

😁
View GitHub Profile
@adamfortuno
adamfortuno / coffee_analysis_db_create.sql
Created July 11, 2018 17:51
Coffee: Analytics Database and Queries
create database ae_analysis;
GO
USE ae_analysis;
GO
DROP TABLE IF EXISTS dbo.summary;
create table dbo.summary (
Test varchar(10) not null
, Cycle tinyint not null
, WorkloadID uniqueidentifier not null
, Hostname sysname not null
@adamfortuno
adamfortuno / get_query_samples.ps1
Last active August 2, 2018 21:57
Get a Sample of Queries Run Against a Database
import-module sqlserver
$instance_list = @('<server-1>', '<server-2>')
$query = @"
SELECT dbs.[name] AS [database_name]
, stat.creation_time [statement_datetime_created]
, stat.execution_count AS [statement_run_count]
, txt.[text] AS [statement_text]
FROM sys.dm_exec_query_stats stat CROSS APPLY sys.dm_exec_sql_text(stat.plan_handle) txt
Import-Module SQLPS -DisableNameChecking
$SQLInstanceName = "(local)"
$SourceDBName = "sandbox"
$CopyDBName = "${SourceDBName}_copy"
$Server = New-Object -TypeName 'Microsoft.SqlServer.Management.Smo.Server' -ArgumentList $SQLInstanceName
$SourceDB = $Server.Databases[$SourceDBName]
$CopyDB = New-Object -TypeName 'Microsoft.SqlServer.Management.SMO.Database' -ArgumentList $Server , $CopyDBName
$CopyDB.Create()
@adamfortuno
adamfortuno / Invoke-Tasks.ps1
Created October 24, 2018 14:11
Execute the same scriptblock several times in parallel
function Invoke-Tasks {
<#
.Synopsis
Invoke a Task
.Description
Executes a task with different calls in parallel.
.Parameter TaskScript
The script for the task to be executed.
.Parameter Parameters
@adamfortuno
adamfortuno / send_mail_use_tls12
Created December 14, 2018 20:50
Secure Mail Transmission via TLS 1.2 (Powershell)
##Secure message transmission with TLS 1.2 (default is 1.0)
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Send-Mailmessage -smtpServer ... -Port ... -from "me@home.com" -to "you@home.com" -subject "..." -body "..."
@adamfortuno
adamfortuno / create_file_on_process_complete.ps1
Created December 14, 2018 21:36
Launch a Process, Create an Event Waiting for it to Complete, and Do Something When the Event Fires
/******************************************************************************
Situation...
There is a DOS batch script named foo.bat in C:\temp\foo.bat. We want
******************************************************************************/
$things-todo-when-batchfile-completes = {
new-item 'c:\temp\thinger-done.txt'
Get-EventSubscriber | Unregister-Event
}
@adamfortuno
adamfortuno / get_server_ips.ps1
Created December 14, 2018 21:38
Retrieve the IP address for a list of servers
$servers = @(
'foo1.sandbox.local'
'foo2.sandbox.local'
'foo3.sandbox.local'
)
foreach ($server in $servers) {
"{0}`t{1}" -f $server, [System.Net.Dns]::GetHostAddresses($server).IPAddressToString
}
## Connect to an instance
[void][Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO")
$instance = New-Object 'Microsoft.SqlServer.Management.Smo.Server' -ArgumentList '<instanceName>'
## Connect to an innstance's WMI
[void][Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO")
[void][Reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.SqlWmiManagement")
$instance_wmi = New-Object 'Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer' -ArgumentList '<instanceName>'
@adamfortuno
adamfortuno / map_aduser_to_employee.py
Created December 31, 2018 00:08
Map Active Directory User to Employee
from fuzzywuzzy import fuzz
import pandas as pd
path_employee_list = "C:/Users/adam.fortuno/temp/employee_names.txt"
path_ad_users_list = "C:/Users/adam.fortuno/temp/ad-user-names.txt"
path_employee_to_aduser_mapping = "C:/Users/adam.fortuno/temp/mapping.csv"
employee_mapping = []
with open(path_employee_list, "r") as employee:
for employee_name in employee:
@adamfortuno
adamfortuno / make_sandbox_parametersniffing.sql
Last active February 11, 2019 22:15
Strategies for Fixing Parameter Sniffing in SQL Server
---Create a playground
create database sandbox;
go
use sandbox
go
drop table dbo.tableOfThings
go
create table dbo.tableOfThings (
id int identity(1,1) not null constraint pk_tableOfThings primary key
, date_created datetime2 not null constraint df_date_created default getdate()