Desktop
Website
Multimedia
Database
Security
Enterprise
Pytanie : Prosty Wszywka Oświadczenie bardzo wolny
Cześć Lud,
I've dostać bardzo prosty wszywka oświadczenie, jako follows
Insert W MyTable (StringID, StringText)
select (0), N'123452.46093750'< br/> ZRZESZENIOWY
select (1), N'468330.90625000'< br/> ZRZESZENIOWY
select 2, N'152484.99609375'< br/> ZRZESZENIOWY
select 3, N'476937.99609375'< br/> ZRZESZENIOWY
select 4, N'30 D6-5FFC'< br/> ZRZESZENIOWY
select 5, N'AE79-9EED'< br/> ZRZESZENIOWY
select 6, N'10.5.0.75'< br/> ZRZESZENIOWY
select 7, N'00-21-9B-01-5C-C4'< br/> ZRZESZENIOWY
select 8, N'Microsoft XPS Dokument Writer'< br/> ZRZESZENIOWY
select 9, N'ActiveReports 6 '
ZRZESZENIOWY
select 10, N'6.0.2250.0'< br/> ZRZESZENIOWY
select 11, N'24'< br/> ......
The ZJEDNOCZENIE nieść dalej dla 1800 rejestr, i dalej oświadczenie łamać dalej w wsad 100, właśnie więc I uderzać jakaś ograniczenie na oświadczenie rozmiar lub liczba unions.
This wszywka brać 4 sekunda 1800 rząd, dlaczego być ten więc zwalniać? (MS rozprawiać na wokoło TPC postać etc, z pewnością the opóźniony i wielki móc więcej niż 450 rząd na sekunde!!)
The stół mieć żadny wskaźnik, żadny związek:
Tworzyć Stołowy MyTable
(
StringID int nieobowiązujący,
StringText nvarchar (4000) nieobowiązujący
)
I mieć zmiana the baza danych "Prosty", swój Sql 2008 przedsiębiorca budowlany wydanie bieg na Kwadrat Sedno 2.66 pudełko z 4GB BARAN. Pomysł inny biegać na ten pudełko oprócz Wizualny Studio 2010.
I próbować ") wartość (" zamiast wybiórka, i i próbować the nowy przecinek opierać się sql 2008 wieloskładnikowy wszywka składnia - jednakowy
Any pomysł? Cokolwiek?
Odpowiedź : Prosty Wszywka Oświadczenie bardzo wolny
Tutaj być co resets the DB przed tutaj test.
Wszystkie test być 10000 wszywka.
dbcc freeproccache
dbcc dropcleanbuffers
ustawiać nocount dalej
IŚĆ
;
opuszczać stołowy MyTable3
IŚĆ
Tworzyć Stołowy MyTable3
(
StringID int nieobowiązujący,
StringText nvarchar (4000) nie null
)
;
=========================
test1 - zjednoczenie forma, jeden duży oświadczenie (10000 jeden strzelać), wytwarzać using the wytwarzać i wytwarzać manuał polepszenie
oznajmiać @i int ustalony @i=1
podczas gdy @i <� 10001="">zaczynać
drukować "wybiórka "+right (@i, 10)+", N ''' +convert
(varchar
(varchar), newid
())+ ''' zjednoczenie";
ustawiać @i=@i+1
końcówka
=========================
wszywka MyTable3
wybiórka (1),
N'A0B8022B-CFE9-43C9-97E5-DE89822AC32F' zjednoczenie
wybiórka 2,
N'F87C8670-1339-458E-8F1C-C2E9B717F4AA' zjednoczenie
wybiórka 3, N'35
ACFFFC-52CF-4805-8C30-A4EB41F3A218' zjednoczenie
..........
wybiórka 10000.
Czas - 7 minutes+, zabity
=========================
test2 - zjednoczenie WSZYSTKO tworzyć
=========================
Czas - szybki niż niż. RODZAJ wtedy ODRĘBNY wymagać. Zjednoczenie samodzielnie robić odrębny
=========================
test3 - zjednoczenie WSAD tworzyć, 100 na wsad, oddzielać obok;
=========================
Czas - nawet szybki. Baran wsad popełniać i brać dużo w BARAN. Moreover, Zapytanie optimizer wydawać dużo czas na długi zapytanie. QO czas iść zapytanie zapytanie dla długi zapytanie.
=========================
test4 - ścięty stół, wkładać znowu (podążać od test3 bez reset)
=========================
Czas - szybki niż 3. QO musieć jakaś planowanie, wszystkie 100 [statyczny] zapytanie od plan tajna kryjówka
=========================
test5 - using wszywka wszywka. QO planować tylko jeden wszywka. Wszystkie inny wszywka iść plan
Wszywka wytwarzać using
oznajmiać @i int ustalony @i=1
podczas gdy @i <� 101="">zaczynać
drukować "exec sp_executesql N '' wszywka MyTable3 wartość (@a, @b) '', N '' @a int, @b nvarchar (4000) '', @a='+ dobrze
(@i, 10)+"
, @b=N ''' +convert
(varchar
(varchar),
newid ())+ ''''
;
ustawiać @i=@i+1
końcówka
=========================
Czas brać - 6s! Szybki.
===================
Wniosek
(1) Sql Serwer Zapytanie Optimizer brać (1) długi the długi the zapytanie tekst.
(2) Wielki wszywka blok using zjednoczenie lub wartość (), (), () wzór siedzieć w ROZSYPISKO w pamięć, then wielki od ROZSYPISKO na wszywka - bad.
(3) (3) Zapytanie być dobry. Polepszać jeżeli ty batch w mówić 10 wszywka, ale wszywka wszywka wtedy wymagać (dla the przykład wtedy) 20 parametr w the 10 wsad wszywka.
(4) ** Żadny test żadny, ale mój domysł ** Using sp dla the wszywka, e.g usp_insert @a, @b che robić the wszywka i twój masowy pismo być the forma
exec usp_insert (1), N'test text';
exec usp_insert 2, N'test text';
etc
być równie szybko the Szybko wszywka using sp_executesql, ponieważ SP kompilować szybko tylko i re-used#.
# - che być the źródło parametr obwąchanie problem….
Inne rozwiązania
SUP7203B PFC niekompatybilność
system przywrócić punkt
IE8 Przedkładać Forma z [Wchodzić Do] Klucz, stosownie
zintegrowany wordpress w miejsce. blog pic doczepianie.
Łączyć XenServer wśród iPhone
Porzucony Windows 7 Instalacyjny odpowiedź kartoteka
SSH konsola: iść precyzować falcówka po nazwa użytkownika
Tworzyć Linux przygotowywać CD-R stylowy but dysk…
Dlaczego Sysinternals Wirusowy wyszukiwarka redirect?
MS Dojazdowy SQL Podział Dojazdowy obejście potrzebować