logo


Welcome Guest! To enable all features please Giriş or Kayıt.

Bildirim

Icon
Error

Ayarlar
Son mesaja git Go to first unread
mehmetzekikir  
#1 Gönderildi : 13 Mayıs 2014 Salı 20:07:31(UTC)
mehmetzekikir

Sıralama: Administration

Gruplar: Administrators
Katılan: 6.05.2014(UTC)
Mesajlar: 670

19 Kere Teşekkür Etti.
152 Mesajına Toplam 253 Kere Teşekkür Edildi.
Büyük Boyutlu Çalışma Tablosu Oluşturma

Herkesin yakındığı bir sorundur acaba sql de yazdığım sorgularımın performansı nasıldır diye. Malumunuz performansı ölçmek için kayıt sayısı çok olan tablolar gerekmektedir. Bizde burada size büyük kayıtılar oluşturan anlaşılması kolay bir adet script oluşturdum.

Öncelikle tablomuzu oluşturalım

Kod:

CREATE TABLE [dbo].[Ambar](

[id] [bigint] IDENTITY(1,1) NOT NULL,

[ay] [int] NULL, 

[gun] [int] NULL,

[yil] [int] NULL,

[kolon1] [varchar](50) NULL,

[kolon2] [varchar](50) NULL,

[kolon3] [varchar](50) NULL,

[kolon4] [varchar](50) NULL,

[kolon5] [varchar](50) NULL,

[kolon6] [varchar](50) NULL,

[kolon7] [varchar](50) NULL,

[kolon8] [varchar](50) NULL,

[kolon9] [varchar](50) NULL,

[kolon10] [varchar](50) NULL,

CONSTRAINT [PK_Ambar] PRIMARY KEY CLUSTERED

(

[id] ASC

)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

) ON [PRIMARY]



Tablomuzu oluşturduktan sonra sıra bu tablomuzu dolduracak olan scripti yazmaya geldi, Scripti istediğimiz gibi tablomuza göre değiştirebiliriz,

Kod:

DECLARE

@DonguSayisi INT = 1,

@Yil INT = 2006,

@Ay INT = 1,

@Gun INT = 1,

@Deger VARCHAR(5) = 'AAAAAAADADSASDA ADS AFD AFS G GH ERWG SAAAA AAAAAAAAAAA AAAAAAAAAAAA AAAAAAAAAAAAAAAA'

WHILE(@DonguSayisi < 10001)

BEGIN

WHILE(@Ay < 13)

BEGIN

WHILE(@Gun < 31)

BEGIN

INSERT INTO Ambar (gun,ay,yil,kolon1,kolon2,kolon3,kolon4,kolon5,kolon6,kolon7,kolon8,kolon9,kolon10) VALUES

(@Gun,@Ay,@Yil,@Deger,@Deger,@Deger,@Deger,@Deger,@Deger,@Deger,@Deger,@Deger,@Deger)

SET @Gun=@Gun+1

END

SET@Ay += 1

SET @Gun= 1

END

SET @DonguSayisi += 1 

SET @Ay = 1

END 

Bu her ayın her gunu için 10000 kez dönüyor, her yılda 3.6 milyon kayıt oluşturuyor, Bu sayede yılı artırarak istediğiniz büyüklükte bir adet tablo oluşturabilirsiniz.
Sql Server 2016 Eğitimiz 19 Mayıs tarihinde başlayacaktır. 32 Saat Olup Ücret 1450 TL + KDV'dir. Kayıt ve ayrıntılar için tıklayınız

twitter.com/dbakademi
Dua ve teşekkür en büyük servetlere bedel...


Bu konudaki kullanıcılar
Guest
Forumu Atla  
Bu foruma yeni konular postalayamazsınız.
Bu forumda ki konulara yeni posta gönderemezsiniz.
Bu forumdaki postalarınızı silemezsiniz.
Bu forumdaki postalarınızı düzenleyemezsiniz.
Bu forumda anketler yaratamazsınız.
Bu forumdaki anketlere oy veremezsiniz.