PANTHEON™ Help

 Sadržaj
 Glavna strana- Dobrodošli u PANTHEON uputstva
[Collapse]PANTHEON
 [Collapse]PANTHEON priručnici
  [Collapse]Priručnik za PANTHEON
   [Expand]Pantheon Hosting
   [Expand]Pomoć
   [Expand]Podešavanja
   [Expand]Narudžbine
   [Expand]Roba
   [Expand]Proizvodnja
   [Expand]POS
   [Expand]Servis
   [Expand]Novac
   [Expand]Kadrovi
   [Expand]Radna površina
   [Expand]Analize
   [Expand]Korisničke strane
   [Expand]Poslovni saveti
    Dodatno
   [Expand]Plansko-analitički alat ZEUS
   [Expand]Dodatni programi
   [Expand]Obaveštenja programa
   [Expand]Zvanična mišljenja
   [Expand]Dodatni programi
   [Collapse]Sistemska okolina
    [Collapse]Instalacija
      Windows 7
      Windows Vista
      Windows Terminal server
      Linux
     [Expand]Oracle SQL server
      Web Servisi
     [Collapse]MS SQL server
      [Collapse]Instalacija SQL servera
        Nadogradnja SQL servera na verziju 2019
        Podešavanje MS SQL servera za veća Pantheon™ okruženja
       Promena sortirnog reda na SQL serveru
       SQL Server Agent
      [Expand]Sigurnosna politika na MS SQL
      [Expand]Biblioteka korisnih T-SQL naredbi
     [Expand]ODBC
    [Expand]Automatsko izvođenje
    [Expand]PANTHEON™
    [Expand]DataLab Utilities
    [Expand]Hardware
    [Expand]Referentni integritet (RI)
    Rečnik izraza
   [Expand]Zastareli produkti
  [Expand]Vodič po DataLab PANTHEON™ Farming
  [Expand]Vodič za mobilni POS
  [Expand]Vodič za PANTHEON Vet
 [Collapse]PANTHEON korisnički priručnici
  [Expand]Korisnički priručnik za PANTHEON
  [Expand]Operativni priručnik za datalab PANTHEON Farming
  [Expand]Korisnički vodič za mobilni POS
  [Expand]Korisnički priručnik za PANTHEON VET
  [Expand]Korisnički priručnik za PANTHEON Farming
[Collapse]PANTHEON Web
 [Collapse]Priručnici za PANTHEON Web
  [Expand]Vodič po PANTHEON Web Light-u
  [Expand]Vodič po PANTHEON Web Terminal-u
  [Expand]Vodič za PANTHEON Web Legal
  [Expand]Arhiva starih proizvoda
 [Collapse]Korisnički priručnici za PANTHEON Web
  [Expand]Kako početi? PANTHEON Web
  [Expand]Korisnički priručnik za PANTHEON Web Light
  [Expand]Korisnički priručnik za PANTHEON Web Terminal
  [Expand]Arhiva starih proizvoda
  [Expand]Korisnički priručnik za PANTHEON Web Legal
[Collapse]PANTHEON Granule
 [Collapse]Priručnik za PANTHEON Granule
  [Expand]Granula Kadrovi
  [Expand]Granula Putni nalozi
  [Expand]Granula Dokumenti i zadaci
  [Expand]Granula Kontrolna tabla
  [Expand]Granula Servis na terenu
  [Expand]Granula B2B naručivanje
  [Expand]Inventar Fiksne Imovine
  [Expand]Granula Inventar skladišta
 [Collapse]Korisnički priručnik za PANTHEON Granule
  [Expand]Kako početi?
  [Expand]PANTHEON Granule i aktivacija
  [Expand]Granula Kadrovi
  [Expand]Granula Putni nalozi
  [Expand]Granula B2B Naručivanje
  [Expand]Granula Kontrolna tabla
  [Expand]Granula Dokumenti i Zadaci
  [Expand]Granula Servis na terenu
   PANTHEON Granule - česta pitanja i odgovori
  [Expand]Inventar Fiksne Imovine
  [Expand]Arhiva
  [Expand]Granula Inventar skladišta
   Arhiva

Load Time: 453.1213 ms
"
  1000730 | 200766 | 264162 | Review
Label

Podešavanje MS SQL servera za veća Pantheon™ okruženja

Podešavanje MS SQL servera za veća Pantheon™ okruženja

  Ukoliko se odlučite za veća okruženja, isporuka besplatne verzije MS SQL Express nije dovoljna, zato se držimo za Standard ili Enterprise verzije. U nastavku sledi nekoliko osnovnih koraka, pri planiranju i pripremi sistema, gde će biti pokrenut Pantheon™ server.  

Disk polja

 

Potrebna su sva tri odvojena raid1 polja, sastavljena iz svih šest diskova:

prvo polje koristimo za sistem, pagefile, podešavanje SQL

drugo polje koristimo za sistemske baze, uključujući i TEMPDB

treće polje koristimo za produkcijske baze

Ukoliko imamo na raspolaganju 8 diskova, koristimo četvrto polje za loge.

Poželjno je, da sistemski raid polje bude poravnat. Za disk polja, gde se nalaze SQL baze su neophodne. U slučaju upotrebe operacionog sistema Windows Server 2008 je to napravljeno automatski, u slučaju Windows Server 2003 , napravimo ručno sa komandom diskpart. Donji primer pokazuje postupk pripreme aligned particije na jednom od raid polja:

diskpart

list disk

select disk <x>

create partition primary align=1024

assign

exit

 

Particije, gde se nalaze SQL baze je potrebno formatirati sa 64KB cluster size.

Ukoliko je SQL sistem već uspostavljen, alignment particije možemo proveriti sa komandom:

    wmic partition get BlockSize, StartingOffset, Name, Index

  Ispisan starting offset delimo sa blocksize. Ukoliko dobijemo neparnu vrednost (npr. 63), particije nisu pravilno pripremljene, što znači da 20% - 40% sporije radi SQL na različitim IO opterećenjima.

Možemo proveriti i prikladnost cluster veličine, sa komandom:

    fsutil fsinfo ntfsinfo c:

    Ukoliko je medju ispisanim vrednostima »Bytes Per Cluster« drugačije od 65536, particija nije pravilno formatirana, jer negativno utiče na IO mogućnosti SQL servera.   Procesorske mogućnosti i memorije Zahteva mogu biti veoma različite, te se preporučuje minimum dual core Xeon sistemi i 8GB memorije kao i 64 bitni sistem.

 

TempDB

 

Preporučujemo da se ima jedan data file za svaki fizički CPU core u sistemu. Kao primer možemo koristiti produžen procesor Intel Xeon E5620, koji ima 4 fizičke core odnosno 8 virtuelnih (hyperthreading). U tom slučaju je optimalno imati 4 data file za tempdb. Svi data file-ovi moraju biti jednako veliki.

data filu za tempdb se preporučuje unapred dodeljen disk prostor, da se izbegne fragmentacija.

Primer pripreme dodatnog datafila sa 10GB prealocated prostora:

USE [master]

GO

ALTER DATABASE [tempdb] ADD FILE ( NAME = N'tempdata2', FILENAME = N'e:\sql\templog2.mdf' , SIZE = 10240000KB , FILEGROWTH = 10%)

GO  

 

Analiza brzine rada Pantheon™ baze podataka - sistem

Konstatujući usporavanje rada, za prvi korak preporučujemo izvodjenje procesa nadogradnje Pantheon™ baze, jer se tako uspostavi optimalno stanje baze podataka:

poprave se indexi i tasteri /ključevi/ na tabelama

popravi se referentni integritet medju tabelama

dodaju se nova polja, urede postojeća i uklone suvišna

Pri nadogradnji moramo biti pažljivi, da uklopimo mogućnost »Nadogradnja svih objekata«. S ovim proveravamo celokupnu Pantheon™ strukturu i popravljamo greške, koje je moguće izazvati spoljnim faktorom (dodatne implementacije).

Preporučeno je menjanje performansi counterjev, na nivou Microsoft-ovog operacionog sistema:

Memory Commited Bytes – ukoliko ima izdvojene memorije više, nego što je  sistempotrebno proširiti memoriju, jer je to swapping /zamenjivanje/.

Memory Available Mbytes – ukoliko padne ispod 5%, potrebno je proširiti memoriju

PhysicalDisk Idle Time – ukoliko često padne ispod 15%, znači da su disk polja preopterećena

PhysicalDisk Read Latency & Write Latency – ukoliko često prelazi 30ms, potrebno je pregledati strukturu disk polja, sql zahteve, u skladu sa particijom za best practice ipd.  

 

Analiza brzine rada Pantheon™ baze podataka – SQL

Proverimo, koliko se vremena podaci čuvaju u cachu. Vrednosti »page life expectancy« su kritične, preporučene su u rangu oko 1000. Za pravilnu sliku, donji panel se izvodi svakih 5 minuta tokom dužeg perioda, da bi uzorak bio reprezentativan. Nakon startovanja više servera kontrolnih sistema (pre svega ugradjen lokalni MS data collection), mogu imati negativan uticaj na ukupne performanse servera, jer analiza podataka se uradi lokalno.

 

 

select b.total - a.db as 'Plan Cache Size', c.ple as 'Page Life Expectancy'

from

( select cntr_value as db

from sys.dm_os_performance_counters

where object_name like '%Buffer Manager%' and counter_name like 'Database pages%' ) a, 

( select distinct cntr_value as total

from sys.dm_os_performance_counters

where object_name like '%Buffer Manager%' and counter_name like 'Total pages%' ) b,

( SELECT cntr_value AS ple

FROM sys.dm_os_performance_counters

WHERE object_name like '%Buffer Manager%'

AND counter_name = 'Page life expectancy' ) c

 

Proverimo najzahtevnije operacije p oCPU i sa donjim querijema. Problemi uglavnom nastupaju posle korisnikovih završenih procesa (sloppy programming, indexi, full table scani,...). Na osnovu rezultata,  zahtevne operacije se  analiziraju i po potrebi optimizuju.

 

-- top 10 CPU

SELECT TOP 10

  qs.execution_count,

  total_CPU_secs = qs.total_worker_time/1000000,

  average_CPU_secs = (qs.total_worker_time/1000000) / qs.execution_count,

  total_elapsed_time_secs = qs.total_elapsed_time/1000000,

  query = st.text,

  qp.query_plan

FROM

  sys.dm_exec_query_stats AS qs

  CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st

  CROSS apply sys.dm_exec_query_plan (qs.plan_handle) AS qp

  ORDER BY qs.total_worker_time DESC

 

-- top 10 I/O

SELECT TOP 10

  qs.execution_count, qs.total_logical_reads, 

  qs.total_elapsed_time, qs.max_elapsed_time,

  qs.last_elapsed_time, qs.last_execution_time,

    SUBSTRING(qt.text, (qs.statement_start_offset/2)+1,

    ((CASE qs.statement_end_offset

    WHEN -1 THEN DATALENGTH(qt.text)

    ELSE qs.statement_end_offset

    END - qs.statement_start_offset)/2)+1) as query,

  qp.query_plan

FROM sys.dm_exec_query_stats qs

  CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt

  CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp

  WHERE qt.encrypted=0

  ORDER BY qs.total_logical_reads DESC

 

Preporučujemo da proverite integritet baze podataka sa:

 

USE Pantheon

GO

DBCC CHECKDB WITH NO_INFOMSGS

 

Pogrešna instalacija ili nedostajeći indexi su čest uzrok problema performansi. Česti problemi prouzrokuju i fragmentaciju indexa ili update statistiku tabela. Fragmentaciju indexa proverimo sa:

 

USE Pantheon;

SELECT a.index_id, name, index_type_desc, avg_fragmentation_in_percent

FROM sys.dm_db_index_physical_stats (DB_ID(), OBJECT_ID(N'Production.Product'),

     NULL, NULL, NULL) AS a

    JOIN sys.indexes AS b ON a.object_id = b.object_id AND a.index_id = b.index_id

WHERE name not like 'NULL' AND avg_fragmentation_in_percent > 10

ORDER by avg_fragmentation_in_percent DESC

GO

 

Preporučujemo i nedeljno izvodjenje rebuilda indexa kao i update statistike sa:

 

USE Pantheon;

GO

DECLARE @TableName VARCHAR(255)

DECLARE @sql NVARCHAR(500)

DECLARE @fillfactor INT

SET @fillfactor = 80

DECLARE TableCursor CURSOR FOR

SELECT OBJECT_SCHEMA_NAME([object_id])+'.'+name AS TableName

FROM sys.tables

OPEN TableCursor

FETCH NEXT FROM TableCursor INTO @TableName

WHILE @@FETCH_STATUS = 0

BEGIN

SET @sql = 'ALTER INDEX ALL ON ' + @TableName + ' REBUILD WITH (FILLFACTOR = ' + CONVERT(VARCHAR(3),@fillfactor) + ')'

EXEC (@sql)

SET @sql = 'UPDATE STATISTICS ' + @TableName + ' WITH FULLSCAN'

EXEC (@sql)

FETCH NEXT FROM TableCursor INTO @TableName

END

CLOSE TableCursor

DEALLOCATE TableCursor

GO

 

 


 

Oceni ovu temu
Da li je ova tema korisna?
Komentari
Komentari će biti vidljivi i na forumu!