Rhino ETL 2.0

Developer, GUI, SQL Server 2012, SSIS No Comments

Kaikilla ei ole Microsoftin ETL-välineestä SQL Server Integration Service:stä pelkästään hyvää sanottavaa. Osa SQL Serverin käyttäjistä jättää SSIS:n suosiolla väliin, ja koodaa ETL-prosessin T-SQL:ää ja C#-ohjelmointikieltä käyttäen. Asiasta voi toki olla montaa mieltä, mutta kyllä graafisen ETL-välineen käytössä on mielestäni enemmän hyötyjä kuin haittoja. SSIS 2012 on varmasti edeltäjiänsä parempi, näin ainakin uskoisin.

Jotkut ovat kehittäneet myös omia ETL-sovelluksiaan, kuten Rhino ETL 2.0. Tuo on varmasti kokeilemisen arvoinen paketti.

Rivinumeron lisääminen tauluun

DBA, SQL Server 2008, SQL Server 2012, T-SQL No Comments

Rivinumeron voi lisätä tauluun ainakin kahdella tavalla, käyttäen IDENTITY-ominaisuutta tai ROW_NUMBER-funktiota:

USE AdventureWorks;
GO

SELECT TOP 100 *
FROM   Production.Culture;
GO

SELECT IDENTITY (INT, 1, 1) AS RowID, *
INTO   #temp1
FROM   Production.Culture;
GO

SELECT TOP 100 *
FROM   #temp1;
GO

SELECT ROW_NUMBER() OVER ( ORDER BY ModifiedDate) AS RowID, *
INTO   #temp2
FROM   Production.Culture;
GO

SELECT TOP 100 *
FROM   #temp2;

Entiteettien identifoiva ja ei-identifioiva suhde

Yleistä No Comments

Tietokantamallinnuksessa puhutaan usein entiteettien idenfioivasta (eng. identifying)  ja ei-identifioivasta (eng. non-identifying) suhteesta. Näiden eroon löytyy dba-foorumilta hyvä selitys, jonka lainaan tähän suomennettuna:

“Kirja voi kuulua jollenkin omistajalle ja tällä omistajalla voi olla monta kirjaa. Kirja voi kuitenkin olla olemassa ilman omistajaa ja kirjan omistaja voi vaihtua. Tällöin kirjan ja omistajan välinen suhde on ei-identifioiva.

Kirja on kuitenkin jonkun kirjoittama ja kirjailijalla voi olla monta hänen kirjoittamaansa kirjaa. Kirjalla täytyy siis olla kirjoittaja eli kirjaa ei ole olemassa ilman tätä kirjoittajaa (eli kirjailijaa). Tämän johdosta kirjailijan ja kirjan suhde on identifioiva.”

Identifoivan suhteen ollessa kyseessä lapsitauluun pääavaimeen tulee ottaa isätaulun pääavain mukaan. Ei-identifioivassa suhteessa isätaulun pääavain on lapsitaulussa viiteavaimena, mutta ei osana lapsitaulun pääavainta.

Artikkeli tietokantataulujen partitioinnista

DBA, SQL Server 2008, SQL Server 2012, Yleistä No Comments

Tietovarastokannoissa yksittäiset faktataulut saattavat kasvaa huikean suuriksi rivimääriltään ja aiheuttaa tämän johdosta erilaisia mm. suorituskykyyn liittyviä ongelmia. Partitiointi onkin kohtalaisen usein käytetty menetelmä isoissa tietovarastokannoissa, tosin sen käytettävyyttä rajoittaa raha – partitiointi on tuettu vain SQL Server Enterprise Editionissa. Partitioinnista löytyy runsaasti materiaalia verkosta ja jostain kannattaa aloittaa. Mielestäni yksi erinomainen artikkeli tuli julki muutama viikko sitten, kun SQL Server spesialisti Brent Ozarin blogiin kirjoittava Kendra Little avasi partitiointiin liittyviä asioita hienojen visualisointien avulla. Kannattaa lukea Kendran artikkeli ja tutustua partitiointiin.

TechDays Finland – SQL Server Track

SQL Server 2012, Yleistä No Comments

Osallistuin tänä vuonna ensimmäistä kertaa Microsoftin järjestämään TechDays tapahtumaan. Tapahtuma järjestettiin Messukeskuksessa Helsingissä 8.-9.3.2012. Loppuunmyyty tapahtuma kokosi yhteen ICT-alan ammattilaiset ympäri Suomea, osallistujia oli yli toistatuhatta. Todellisesta suurtapahtumasta voidaan siis puhua.

Itse osallistuin lähinnä SQL Server trackiin. Luentojen aiheet liittyivät lähinnä uuden SQL Server 2012-version ympärille, sen uusiin ominaisuuksiin ja niiden tuomiin mahdollisuuksiin. Toinen pääpaino tuntui olevan Tietovarastoinnissa, mikä miellytti etenkin minua. Tosin Tietovarastointi-luennot eivät tarjonneet ainakaan itselle kovinkaan paljoa mitään uutta. Omasta mielestäni mielenkiintoisin luento oli “SQL Server 2012 – Korkean käytettävyyden arkkitehtuuri”.

Luentojen materiaalit tulevat lähipäivinä jakoon TechDays-tapahtuman sivuille.

Kantayhteyksien lukumäärä

DBA, Developer, SQL Server 2008, SQL Server 2012, T-SQL No Comments

Halusin selvittää, että kuinka monta yhteyttä instanssin tietokantoihin on tällä hetkellä olemassa. Tämä tieto löytyy kyselemällä sys.processes näkymää. Ohessa kysely, jolla saa tiedon yhteyksien lukumäärästä per logini.

SELECT  DB_NAME(dbid) AS Kannan_nimi ,
        COUNT(dbid) AS Yhteyksien_lkm ,
        loginame AS Login_nimi
FROM    sys.sysprocesses
WHERE   dbid > 0
GROUP BY dbid ,
        loginame

Tietokannan omistajan vaihtaminen

DBA, SQL Server 2008, SQL Server 2012, T-SQL No Comments

SQL Serveristä löytyy käsite tietokannan omistaja (database owner). Omistaja löytyy tietokannan tiedoista (Properties –> Database –> Owner) ja helpoiten sen saa esiin kyselemällä tiedon sys.databases näkymästä:

SELECT  name ,
SUSER_SNAME(owner_sid)
FROM    sys.databases

Omistajan pystyy vaihtamaan kahdella tavalla, joko komennolla

EXEC sp_changedbowner 'Kayttaja'

tai käyttämällä “uudempaa” syntaksia

ALTER AUTHORIZATION ON DATABASE::Tietokanta TO Kayttaja

Proseduurien parhaat käytännöt

DBA, Developer, SQL Server 2008, SQL Server 2012, T-SQL, Yleistä No Comments

Lyhty postaus pitkän hiljaiselon jälkeen. SQL Server guru Aaron Bertrand on kerännyt oman listansa parhaista käytännöistä liittyen SQL Server proseduureihin. Mielestäni listassa on monia erinomaisia vinkkejä parempaan ohjelmointiin.

Autocommit

DBA, Developer, SQL Server 2008, SQL Server 2012, T-SQL No Comments

SQL Serverissä on default asetuksen mukaan autocommit päällä. Autocommit tarkoittaa sitä, että jokainen Transact-SQL komento kommitoidaan (COMMIT) tai rollataan takaisin (ROLLBACK) kun komento on suoritettu. Kommitointi ja takaisin rollaus riippuu siitä meneekö komento läpi. Autokommitoinin voi ohittaa määrittelemällä transaktion explisiittisesti BEGIN TRANSACTION-komennolla, tai määrittämällä SET IMPLICIT TRANSACTIONS ON.

SSIS 2012 uudet ominaisuudet

DBA, Developer, SQL Server 2012, SSIS No Comments

SQL Server 2012 RC0:n julkistuksen myötä alkaa tippua informaatiota kokonaisuuden uusista ominaisuuksista. Uuden version myötä myös SSIS saa listan päivityksiä, joista SSIS Team Blog julkistaa 10 parasta uutuutta:

  • #1 – Change Data Capture
  • #2 – ODBC Support
  • #3 – Connection Manager Changes
  • #4 – Flat File Source Improvements
  • #5 – Package Format Changes
  • #6 – Visual Studio Configurations
  • #7 – Scripting Improvements
  • #8 – Troubleshooting & Logging
  • #9 – Data Taps
  • #10 – Server Management with PowerShell
#4 vaikuttaa mielenkiintoiselta siinä mielessä, että monesti ETL:ää rakentaessa joutuu kohtaamaan datatiedostoja, jotka on “ill-formed” eli joltain osin puutteellisessa muodossa. Nuo parannukset tuovat toivottavasti apua näihin ongelmiin.
Icons by N.Design Studio. Designed By Ben Swift. Powered by WordPress, and Free WordPress Themes
Entries RSS Comments RSS Log in