mirror of
https://github.com/postgres/postgres.git
synced 2025-06-13 07:41:39 +03:00
Update Turkish FAQ, Devrim GUNDUZ
This commit is contained in:
309
doc/FAQ_turkish
309
doc/FAQ_turkish
@ -1,11 +1,11 @@
|
||||
PostgreSQL i<>in S<>k<EFBFBD>a Sorulan Sorular (SSS)
|
||||
|
||||
Son g<>ncelleme : 19.05.2003 Cuma 05:03
|
||||
Son g<>ncelleme : 23 <20>ubat 2004 Pazartesi - 13:34:26
|
||||
|
||||
Bruce Momjian (pgman@candle.pha.pa.us)
|
||||
<20>eviren : Devrim G<>ND<4E>Z (devrim@gunduz.org), Nicolai Tufar (ntufar@yahoo.com), Volkan Yaz<EFBFBD>c<EFBFBD> (volkany@celiknet.com)
|
||||
<20>eviren : Devrim G<>ND<4E>Z (devrim@gunduz.org), Nicolai Tufar (ntufar@yahoo.com), Volkan YAZICI (vyazici@phreaker.net)
|
||||
|
||||
Bu belgenin en g<>ncel hali, http://www.gunduz.org/seminer/pg/FAQ_turkish ve
|
||||
Bu belgenin en g<>ncel hali, http://www.gunduz.org/seminer/pg/FAQ_turkish.html ve
|
||||
http://www.PostgreSQL.org/docs/faq-turkish.html
|
||||
adreslerinde gor<6F>lebilir.
|
||||
|
||||
@ -60,7 +60,7 @@
|
||||
|
||||
4.1) Binary cursor ve normal cursor aras<61>ndaki fark nedir?
|
||||
4.2) Sorgunun sadece ilk birka<6B> sat<61>r<EFBFBD>n<EFBFBD> nas<61>l SELECT edebilirim?
|
||||
4.3) psql'in i<>inde g<>rd<72><64><EFBFBD>m tablolar<61>n ya da di<64>er <20>eylerin listesini nasil alabilirim?
|
||||
4.3) psql'in i<>inde g<>rd<72><64><EFBFBD>m tablolar<61>n ya da di<64>er <20>eylerin listesini nas<EFBFBD>l alabilirim?
|
||||
4.4) Bir tablodan bir kolonu nas<61>l kald<6C>rabilirim?
|
||||
4.5) Bir sat<61>r, tablo ve veritaban<61> icin en fazla b<>y<EFBFBD>kl<6B>k nedir?
|
||||
4.6) Tipik bir metin dosyas<61>ndaki veriyi saklamak i<>in ne kadar disk alan<61> gereklidir?
|
||||
@ -69,8 +69,8 @@
|
||||
4.9) Query-optimizer in sorgular<61>m<EFBFBD> nas<61>l de<64>erlendirdigini, i<>leme soktu<74>unu nas<61>l g<>rebilirim?
|
||||
4.10) R-tree index nedir?
|
||||
4.11) Genetic Query Optimizer nedir?
|
||||
4.12) D<>zenli ifade (Regular Expression) aramalar<61>n<EFBFBD> ve b<>y<EFBFBD>k/k<><6B><EFBFBD>k harfe duyars<72>z aramalar<61> nasil yapabilirim?
|
||||
Bu b<>y<EFBFBD>k(k<><6B><EFBFBD>k harfe duyarl<72> aramalar i<>in indeksi nasil kullanabilirim?
|
||||
4.12) D<>zenli ifade (Regular Expression) aramalar<61>n<EFBFBD> ve b<>y<EFBFBD>k/k<><6B><EFBFBD>k harfe duyars<72>z aramalar<61> nas<EFBFBD>l yapabilirim?
|
||||
Bu b<>y<EFBFBD>k(k<><6B><EFBFBD>k harfe duyarl<72> aramalar i<>in indeksi nas<EFBFBD>l kullanabilirim?
|
||||
|
||||
4.13) Bir sorguda, bir alan<61>n "NULL" oldu<64>unu nas<61>l ortaya <20><>karabilirim?
|
||||
4.14) <20>esitli karakter tipleri aras<61>ndaki farklar nelerdir?
|
||||
@ -89,7 +89,7 @@
|
||||
4.23) Outer join i<>lemini nas<61>l yapabilirim?
|
||||
4.24) Ayn<79> anda birden fazla veritaban<61>nda nas<61>l i<>lem yapabilirim?
|
||||
4.25) Bir fonksiyondan nas<61>l <20>oklu sat<61>r ya da kolon d<>nd<6E>rebilirim?
|
||||
4.26) Neden Pl/PgSQL fonksiyonlar<61> i<>inden g<>venli bir <20>ekilde tablo yaratma/kald<6C>rma i<>lemlerini yapam<61>yoruz?
|
||||
4.26) Neden PL/pgSQL fonksiyonlar<61> i<>inden g<>venli bir <20>ekilde tablo yaratma/kald<6C>rma i<>lemlerini yapam<61>yoruz?
|
||||
4.27) Hangi replikasyon se<73>enekleri bulunmaktad<61>r?
|
||||
4.28) Hangi <20>ifreleme se<73>enekleri bulunmaktad<61>r?
|
||||
|
||||
@ -169,14 +169,14 @@
|
||||
libpq C k<>t<EFBFBD>phanesini, psql ve diger arabirimleri ve binary dosyalar<61>, MS
|
||||
Windows ortamlar<61>nda <20>al<61>smas<61> i<>in derlemeniz m<>mk<6D>nd<6E>r. Bu <20>rnekte istemcide
|
||||
MS Windows <20>al<61>s<EFBFBD>yor ve desteklenen Unix platformlar<61>ndan birinde <20>al<61>san PostgreSQL
|
||||
sunucuna TCP/IP ile baglanmaktad<61>r. Da<44><61>t<EFBFBD>m i<>indeki win31.mak dosyas<61> ile,
|
||||
sunucuna TCP/IP ile baglanmaktad<61>r. Da<44><61>t<EFBFBD>m i<>indeki win32.mak dosyas<61> ile,
|
||||
Win32 libpg k<>t<EFBFBD>phanesi ve psql yaratabilirsiniz. PostgreSQL ayn<79> zamanda ODBC
|
||||
istemcileri ile haberlesebilmektedir.
|
||||
|
||||
Sunucu
|
||||
|
||||
Veritaban<61> sunuucsu Cygwin kullanarak Windows NT, 2K ya da XP <20>zerinde calistirilabilir.
|
||||
Dag<EFBFBD>t<EFBFBD>m i<>indeki pgsql/doc/FAQ_MSW<53>N dosyas<61>n<EFBFBD> ya da web sitemizdeki MS Windows FAQ'u
|
||||
Veritaban<61> sunucusu Cygwin kullanarak Windows NT, 2K ya da XP <20>zerinde <EFBFBD>al<EFBFBD><EFBFBD>t<EFBFBD>r<EFBFBD>labilir.
|
||||
Da<EFBFBD><EFBFBD>t<EFBFBD>m i<>indeki pgsql/doc/FAQ_MSW<53>N dosyas<61>n<EFBFBD> ya da web sitemizdeki MS Windows FAQ'u
|
||||
inceleyebilirsiniz.
|
||||
|
||||
Do<44>al Windows NT/2000/XP portu i<>in <20>u anda <20>al<61><6C>malar devam etmektedir. Windows s<>r<EFBFBD>m<EFBFBD>
|
||||
@ -185,15 +185,15 @@
|
||||
|
||||
Ayr<79>ca, http://forge.novell.com adresinde Novell Netware 6 portu bulunmaktad<61>r.
|
||||
|
||||
1.5) PostgreSQL'in nereden indirebilirim?
|
||||
1.5) PostgreSQL'i nereden indirebilirim?
|
||||
|
||||
PostgreSQL i<>in ana anonim ftp sitesi ftp://ftp.PostgreSQL.org/pub ' dur.
|
||||
Yans<6E>lar i<>in, ana web sayfam<61>za bakabilirsiniz.
|
||||
|
||||
1.6) Deste<74>i nereden alabilirim?
|
||||
|
||||
Ana e-posta listesi : pgsql-general@PostgreSQL.org. PostgreSQL konusundaki tart<72>smalara
|
||||
a<><61>kt<6B>r. <20>ye olmak i<>in, asag<EFBFBD>daki sat<61>rlar<61> e-postanizin body k<>sm<73>na (konu k<>sm<73>na degil)
|
||||
Ana e-posta listesi : pgsql-general@PostgreSQL.org. PostgreSQL konusundaki tart<72><EFBFBD>malara
|
||||
a<><61>kt<6B>r. <20>ye olmak i<>in, asa<EFBFBD><EFBFBD>daki sat<61>rlar<61> e-postan<EFBFBD>z<EFBFBD>n g<>vde k<>sm<73>na (konu k<>sm<73>na de<EFBFBD>il)
|
||||
yaz<61>p, pgsql-general-request@PostgreSQL.org adresine g<>nderin:
|
||||
|
||||
subscribe
|
||||
@ -207,30 +207,30 @@
|
||||
|
||||
yazan bir e-posta atman<61>z yeterli olacakt<6B>r.
|
||||
|
||||
Digest postalar, ana liste 30k civar<61>nda e-postaya ulastiginda <20>yelere g<>nderilmektedir.
|
||||
Digest postalar, ana liste 30k civar<61>nda e-postaya ulast<EFBFBD><EFBFBD><EFBFBD>nda <20>yelere g<>nderilmektedir.
|
||||
|
||||
Buglar i<>in bir e-posta listesi bulunmaktad<61>r. Bu listeye <20>ye olmak i<>in,
|
||||
email to pgsql-bugs-request@PostgreSQL.org adresine, body k<>sm<73>nda
|
||||
pgsql-bugs-request@PostgreSQL.org adresine, body k<>sm<73>nda
|
||||
|
||||
subscribe
|
||||
end
|
||||
|
||||
yazan bir e-posta atman<61>z yeterli olacakt<6B>r.
|
||||
|
||||
Ayn<79> zamanda, gelistiriciler i<>in tart<72>sma listesi bulunmaktad<61>r. Bu listeye <20>ye olmak
|
||||
i<>in, pgsql-hackers-request@PostgreSQL.org adresine, body k<>sm<73>nda
|
||||
Ayn<79> zamanda, geli<EFBFBD>tiriciler i<>in tart<72><EFBFBD>ma listesi bulunmaktad<61>r. Bu listeye <20>ye olmak
|
||||
i<>in, pgsql-hackers-request@PostgreSQL.org adresine, g<EFBFBD>vde k<>sm<73>nda
|
||||
|
||||
subscribe
|
||||
end
|
||||
|
||||
yazan bir e-posta atman<61>z yeterli olacakt<6B>r.
|
||||
|
||||
Bunun d<>s<EFBFBD>ndaki e-posta listelerine ve PostgreSQL hakk<6B>nda bilgiye, PostgreSQL WWW
|
||||
ana sayfas<61>ndan ulasabilirsiniz:
|
||||
Bunlar<EFBFBD>n d<><EFBFBD><EFBFBD>ndaki e-posta listelerine ve PostgreSQL hakk<6B>nda bilgiye, PostgreSQL WWW
|
||||
ana sayfas<61>ndan ula<EFBFBD>abilirsiniz:
|
||||
|
||||
http://www.PostgreSQL.org
|
||||
|
||||
Ayn<79> zamanda, EFNet <20>zerinde, #PostgreSQL adl<64> bir <EFBFBD>RC kanal<61> bulunmaktad<61>r. Bunun i<>in,
|
||||
Ayn<79> zamanda, EFNet ve OpenProjects <EFBFBD>zerinde, #PostgreSQL adl<64> bir IRC kanal<61> bulunmaktad<61>r. Bunun i<>in,
|
||||
irc -c '#PostgreSQL' "$USER" irc.phoenix.net Unix komutunu kullanabilirsiniz.
|
||||
|
||||
Ticari destek veren firmalar<61>n listesine,
|
||||
@ -318,7 +318,7 @@
|
||||
PostgreSQL mevcut b<>y<EFBFBD>k ticari veritabanlarinin, transaction, subselect,
|
||||
trigger, view, foreign key referential integrity ve sophisticated locking gibi
|
||||
t<>m <20>zelliklerine sahiptir. Onlarin sahip olmadiklari, kullanici-tanimli tipler
|
||||
(user-defined types), rules, inheritance ve lock cak<61>smalarini d<>s<EFBFBD>rmek icin
|
||||
(user-defined types), rules, inheritance ve lock cak<61><EFBFBD>malar<EFBFBD>n<EFBFBD> d<><EFBFBD><EFBFBD>rmek i<EFBFBD>in
|
||||
multi-version uyumluluk <20>zellikleri bulunmaktadir.
|
||||
|
||||
Performans (Ba<42>ar<61>m)
|
||||
@ -460,7 +460,7 @@
|
||||
ve $PGDATA_pg_hba.conf dosyas<61>n<EFBFBD> d<>zenleyerek host-based authentication'a
|
||||
olanak vermezseniz, baglant<6E> yapamayacaklard<72>r.
|
||||
|
||||
3.6) Veritabani motorunu daha iyi basarim icin nasil ayarlayabilirim?
|
||||
3.6) Veritabani motorunu daha iyi basarim icin nas<EFBFBD>l ayarlayabilirim?
|
||||
|
||||
Indexler sorgular<61> h<>zland<6E>rabilir. EXPLAIN komutu, PostgreSQL'in sorgunuzu nas<61>l
|
||||
yorumlad<61><64><EFBFBD>n<EFBFBD> ve hangi indexleri kullandigini g<>rmenize izin verir.
|
||||
@ -577,17 +577,15 @@
|
||||
|
||||
DECLARE yard<72>m sayfasina bakiniz.
|
||||
|
||||
4.2) Sorgunun sadece ilk birka<6B> sat<61>r<EFBFBD>n<EFBFBD> nasil SELECT edebilirim?
|
||||
4.2) Sorgunun sadece ilk birka<6B> sat<61>r<EFBFBD>n<EFBFBD> nas<EFBFBD>l SELECT edebilirim?
|
||||
|
||||
FETCH yard<72>m sayfasina bakiniz, aya da SELECT ... LIMIT.... kullan<61>n<EFBFBD>z.
|
||||
|
||||
The entire query may have to be evaluated, even if you only want the
|
||||
first few rows. Consider a query that has an ORDER BY. <20>f there is an
|
||||
index that matches the ORDER BY, PostgreSQL may be able to evaluate
|
||||
only the first few records requested, or the entire query may have to
|
||||
be evaluated until the desired rows have been generated.
|
||||
<EFBFBD>lk birka<6B> sat<61>r<EFBFBD> almak isteseniz bile, t<>m sorgu de<64>erlendirilmek durumunda kal<61>nabilir. ORDER BY i<>eren bir
|
||||
sorgu d<><64><EFBFBD>n<EFBFBD>n. E<>er ORDER BY i<>e e<>le<6C>en bir index varsa, PostgreSQL istenen ilk birka<6B> sat<61>r<EFBFBD> i<>leyebilir, ya da
|
||||
t<EFBFBD>m sorgu istenen sat<61>rlar <20>retilene kadar i<>lenebilir.
|
||||
|
||||
4.3) psql'in i<>inde g<>rd<72>g<EFBFBD>m tablolarin ya da diger seylerin listesini nasil alabilirim?
|
||||
4.3) psql'in i<>inde g<>rd<72>g<EFBFBD>m tablolarin ya da diger seylerin listesini nas<EFBFBD>l alabilirim?
|
||||
|
||||
pgsql/src/bin/psql/describe.c i<>indeki psql kaynak kodunu okuyabilirsiniz. Bu kod,
|
||||
psql'in \ ile baslayan komutlar<61>n<EFBFBD>n <20><>kt<6B>s<EFBFBD>n<EFBFBD> olusturan SQL komutlarini i<>erir. Ayn<79>
|
||||
@ -612,8 +610,8 @@
|
||||
|
||||
S<>n<EFBFBD>rlar:
|
||||
|
||||
Veritabani icin en fazla b<>y<EFBFBD>kl<6B>k nedir? S<>n<EFBFBD>rs<72>z (4 TB'l<>k veritaban<61> bulunmaktad<61>r)
|
||||
Bir tablo icin en fazla b<>y<EFBFBD>kl<6B>k nedir? 16 TB
|
||||
Veritabani icin en fazla b<>y<EFBFBD>kl<6B>k nedir? S<>n<EFBFBD>rs<72>z (32 TB'l<>k veritaban<61> bulunmaktad<61>r)
|
||||
Bir tablo icin en fazla b<>y<EFBFBD>kl<6B>k nedir? 32 TB
|
||||
Bir sat<61>r i<>in en fazla b<>y<EFBFBD>kl<6B>k nedir? 1.6 TB
|
||||
Bir alan i<>in en fazla b<>y<EFBFBD>kl<6B>k nedir? 1 GB
|
||||
Tabloda en fazla sat<61>r say<61>s<EFBFBD> ka<6B>t<EFBFBD>r? S<>n<EFBFBD>rs<72>z
|
||||
@ -664,7 +662,7 @@
|
||||
|
||||
NULL de<64>erler bitmapler i<>inde tutulur; dolay<61>s<EFBFBD>yla <20>ok az yer kaplarlar.
|
||||
|
||||
4.7) Veritaban<61>nda hangi tablo ya da indexlerin tan<61>mland<6E>g<EFBFBD>n<EFBFBD> nasil g<>rebilirim?
|
||||
4.7) Veritaban<61>nda hangi tablo ya da indexlerin tan<61>mland<6E>g<EFBFBD>n<EFBFBD> nas<EFBFBD>l g<>rebilirim?
|
||||
|
||||
psql, bu t<>r bilgileri g<>stermek i<>in, \ ile ba<62>layan bir <20>ok komut sunmaktad<61>r.
|
||||
\? komutu ile bu komutlar<61> g<>rebilirsiniz. Ayr<79>ca, bunlar<61> a<><61>klayan ve pg_ ile ba<62>layan
|
||||
@ -675,69 +673,67 @@
|
||||
sistem dosyalarindan bilgiyi almak i<>in gereksinim duyulan bir <20>ok SELECTleri g<>sterir.
|
||||
|
||||
4.8) Sorgular<61>m cok yava<76>, ya da indexlerimi kullanm<6E>yorlar. Neden?
|
||||
Indexler her sorgu taraf<61>ndan otomatik olarak kullan<61>lmazlar. Indexler e<>er bir tablonun b<>y<EFBFBD>kl<6B><6C><EFBFBD> minimum bir
|
||||
b<EFBFBD>y<EFBFBD>kl<EFBFBD>kten fazla ise ve sorgu tablodaki sat<61>rlar<61>n sadece k<><6B><EFBFBD>k bir y<>zdesini se<73>iyorsa kullan<61>l<EFBFBD>r. Bunun nedeni,
|
||||
index eri<72>iminin neden oldu<64>u raslansal disk eri<72>imi nin diskin ya da tablonun s<>ral<61> okunmas<61>ndan daha yavas
|
||||
olabilmesidir.
|
||||
|
||||
Indexes are not automatically used by every query. Indexes are only used if the table is larger than a minimum size,
|
||||
and the query selects only a small percentage of the rows in the table. This is because the random disk access caused
|
||||
by an index scan can be slower than a straight read through the table, or sequential scan.
|
||||
Bir index'in kullan<61>l<EFBFBD>p kullan<61>lmayaca<63><61>n<EFBFBD> belirlemek i<>in, PostgreSQL tablo hakk<6B>ndaki istatistiklere gereksinmesi
|
||||
vard<EFBFBD>r. Bu istatistikler, VACUUM ANALYZE kullan<61>larak toplan<61>rlar. Optimizer, istatistikleri kullanarak, tabloda ka<6B>
|
||||
sat<EFBFBD>r oldu<64>unu ve bilir ve indexin kullan<61>l<EFBFBD>p kullan<61>lmayaca<63><61>na daha iyi karar verir. Istatistikler, ayn<EFBFBD> zamanda en
|
||||
uygun join s<>ras<61>n<EFBFBD> ve y<>ntemini belirlemekte <20>ok <20>nemlidir. <20>statistik toplanmas<61>, tablo i<>erikleri de<64>i<EFBFBD>tik<69>e
|
||||
periyodik olarak yap<61>lmal<61>d<EFBFBD>r.
|
||||
|
||||
To determine if an index should be used, PostgreSQL must have statistics about the table. These statistics are
|
||||
collected using VACUUM ANALYZE, or simply ANALYZE. Using statistics, the optimizer knows how many rows are in the
|
||||
table, and can better determine if indexes should be used. Statistics are also valuable in determining optimal join
|
||||
order and join methods. Statistics collection should be performed periodically as the contents of the table change.
|
||||
|
||||
Indexes are normally not used for ORDER BY or to perform joins. A sequential scan followed by an explicit sort is
|
||||
usually faster than an index scan of a large table.
|
||||
However, LIMIT combined with ORDER BY often will use an index because only a small portion of the table is returned.
|
||||
In fact, though MAX() and MIN() don't use indexes, it is possible to retrieve such values using an index with ORDER
|
||||
BY and LIMIT:
|
||||
Indexler normalde ORDER BY sorgular<61> ya da join i<>lemlerini ger<65>ekle<6C>tirmek i<>in kullan<61>lmazlar. A<><41>k bir s<>ralamay<61>
|
||||
takip eden s<>ral<61> bir arama (sequential scan), b<>y<EFBFBD>k bir tabloda index aramas<61> yapmaktan genelde daha h<>zl<7A>d<EFBFBD>r.
|
||||
Ancak, ORDER BY ile birle<6C>mi<6D> LIMIT genellikle bir index kullanacakt<6B>r; <20><>nk<6E> tablonun sadece belirli bir miktar<61>
|
||||
d<EFBFBD>nd<EFBFBD>r<EFBFBD>lecektir. Asl<73>nda, MAX() ve MIN() fonksiyonlar<61>n<EFBFBD>n index kullanmamalar<61>ndan dolay<61>, bu gibi de<64>erleri ORDER BY
|
||||
ve LIMIT kullanarak da almak olas<61>d<EFBFBD>r:
|
||||
|
||||
SELECT col
|
||||
FROM tab
|
||||
ORDER BY col [ DESC ]
|
||||
LIMIT 1;
|
||||
|
||||
E<EFBFBD>er optimizer'in sequential scan i<>leminde hata yapt<70><74><EFBFBD>n<EFBFBD> d<><64><EFBFBD>n<EFBFBD>yorsan<EFBFBD>z, SET enable_seqscan TO 'off' 'u kullan<61>n<EFBFBD>z
|
||||
ve index scan'in hala h<>zl<7A> olup olmad<61><64><EFBFBD>n<EFBFBD> g<>rmek i<>in testler yap<61>n<EFBFBD>z.
|
||||
E<EFBFBD>er optimizer'<EFBFBD>n s<EFBFBD>ral<EFBFBD> arama yapmas<61>n<EFBFBD>n yanl<6E><6C> oldu<64>una inan<EFBFBD>yorsan<EFBFBD>z, SET enable_seqscan TO 'off' kullan<61>n ve
|
||||
index kullanan aramalar<61>n hala daha h<EFBFBD>zl<EFBFBD> olup olmad<61><64><EFBFBD>n<EFBFBD> g<>r<EFBFBD>n.
|
||||
|
||||
LIKE ya da ~ gibi operatorler kullaniyorsan<EFBFBD>z, indeksler sadece a<>a<EFBFBD><61>daki ko<6B>ullarda kullan<61>labilir:
|
||||
LIKE ya da ~ gibi operat<EFBFBD>rler kullan<EFBFBD>yorsan<EFBFBD>z, index'ler sadece a<>a<EFBFBD><61>daki ko<6B>ullarda kullan<61>labilir:
|
||||
|
||||
* Arama dizininin ba<62><61>, dizinin ba<62><61> ile ba<62>lanmal<61>d<EFBFBD>r. Yani,
|
||||
o LIKE sorgular<61> % ile ba<62>lamamal<61>d<EFBFBD>r.
|
||||
o D<>zenli ifade sorgular<61> ^ i<>e ba<62>lamamal<61>d<EFBFBD>r.
|
||||
* Arama dizininin ba<62><61>, dizinin ba<62><61> ile ba<62>lanmal<61>d<EFBFBD>r. Yani,
|
||||
o LIKE sorgular<61> % ile ba<62>lamamal<61>d<EFBFBD>r.
|
||||
o D<>zenli ifade sorgular<61> ^ i<>e ba<62>lamamal<61>d<EFBFBD>r.
|
||||
* Arama metni bir karakter s<>n<EFBFBD>f<EFBFBD> ile ba<62>layamaz. <20>rnek: [a-e]
|
||||
* ILIKE ve ~* gibi b<EFBFBD>y<EFBFBD>k/k<><6B><EFBFBD>k harfe duyars<72>z aramalar indekslerden yararlanmazlar. Onun yerine, b<>l<EFBFBD>m 4.12'de
|
||||
anlat<EFBFBD>lan fonksiyonel indeksleri kullanabilirsiniz.
|
||||
* initdb s<>ras<61>nda <20>ntan<61>ml<6D> C localei kullan<61>lmal<61>d<EFBFBD>r.
|
||||
* ILIKE ve ~* gibi b<>y<EFBFBD>k/k<><6B><EFBFBD>k harfe duyars<72>z aramalar index'lerden yararlanmazlar. Onun yerine, b<>l<EFBFBD>m 4.12'de
|
||||
anlat<EFBFBD>lan fonksiyonel index'leri kullanabilirsiniz.
|
||||
* initdb s<>ras<61>nda <20>ntan<61>ml<6D> C locale'i kullan<61>lmal<61>d<EFBFBD>r.
|
||||
|
||||
4.9) query-optimizer in sorgular<61>m<EFBFBD> nas<61>l de<64>erlendirdi<64>ini, i<>leme soktu<74>unu nas<61>l g<>rebilirim?
|
||||
|
||||
EXPLAIN yard<72>m sayfas<61>na bak<61>n<EFBFBD>z.
|
||||
|
||||
4.10) R-tree index nedir?
|
||||
R-tree index, uzaysal (spatial) verileri indexlemek i<>in kullan<61>l<EFBFBD>r. Bir hash index, dizi aramalar<61>nda (range search)
|
||||
kullan<EFBFBD>lamaz. B-tree index dizi aramalar<61>nda sadece tek boyutlu <20>al<61><6C>maktad<61>r. R-tree, <20>ok boyutlu veriyi destekler.
|
||||
<EFBFBD>rne<EFBFBD>in, e<>er bir R-tree index point veri tipi <20>zerinde in<69>a edililebilirse, sistem "select all points within a
|
||||
bounding rectangle" gibi sorgulara daha verimli yan<61>tlar verecektir.
|
||||
|
||||
An R-tree index is used for indexing spatial data. A hash index can't handle range searches. A B-tree index only
|
||||
handles range searches in a single dimension. R-trees can handle multi-dimensional data. For example, if an R-tree
|
||||
index can be built on an attribute of type point, the system can more efficiently answer queries such as "select all
|
||||
points within a bounding rectangle."
|
||||
Orijinal R-tree tasar<61>m<EFBFBD>n<EFBFBD> a<><61>klayan belge:
|
||||
|
||||
The canonical paper that describes the original R-tree design is:
|
||||
|
||||
Guttman, A. "R-trees: A Dynamic Index Structure for Spatial Searching." Proceedings of the 1984 ACM SIGMOD Int'l Conf
|
||||
Guttman, A. "R-trees: A Dynamic Index Structure for Spatial Searching." Proceedings of the 1984 ACM SIGMOD Int'l Conf
|
||||
on Mgmt of Data, 45-57.
|
||||
|
||||
Bu paperi, Stonebraker'<27>n "Readings in Database Systems" kitab<61>nda bulabilirsiniz.
|
||||
Bu belgeyi, Stonebraker'<27>n "Readings in Database Systems" kitab<61>nda bulabilirsiniz.
|
||||
|
||||
G<EFBFBD>m<EFBFBD>l<EFBFBD> R-tree indexleri poligon ve boxlar<61> kullanabilir. Teorik olarak, R-tree indexlerin <20>zelliklerini
|
||||
geni<EFBFBD>letmek bir miktar <20>aba gerektirir ve bunun nas<61>l yap<61>laca<63><61>na dair bir belgemiz hen<65>z bulunmamaktad<61>r.
|
||||
|
||||
Built-in R-trees can handle polygons and boxes. In theory, R-trees can be extended to handle higher number of
|
||||
dimensions. In practice, extending R-trees requires a bit of work and we don't currently have any documentation on
|
||||
how to do it.
|
||||
|
||||
4.11) Genetic Query Optimizer nedir?
|
||||
|
||||
GEQO mod<6F>l<EFBFBD>, Genetic Algorith(GA) kullan<61>larak tablolar birle<6C>tirildi<64>inde sorgu optimizasyonunu h<>zland<6E>r<EFBFBD>r.
|
||||
It allows the handling of large join queries through nonexhaustive search.
|
||||
|
||||
4.12) D<>zenli ifade (Regular Expression) aramalar<61>n<EFBFBD> ve b<>y<EFBFBD>k/k<EFBFBD><EFBFBD><EFBFBD>k harfe duyars<EFBFBD>z aramalar<EFBFBD> nasil yapabilirim?
|
||||
Bu b<>y<EFBFBD>k(k<><6B><EFBFBD>k harfe duyarl<72> aramalar i<>in indeksi nasil kullanabilirim?
|
||||
|
||||
4.12) D<>zenli ifade (Regular Expression) aramalar<61>n<EFBFBD> ve b<>y<EFBFBD>k/k<><6B><EFBFBD>k harfe duyars<72>z aramalar<61> nas<61>l yapabilirim?
|
||||
Bu b<>y<EFBFBD>k(k<EFBFBD><EFBFBD><EFBFBD>k harfe duyarl<EFBFBD> aramalar i<>in indeksi nas<EFBFBD>l kullanabilirim?
|
||||
|
||||
~ operat<61>r<EFBFBD> d<>zenli ifade e<>le<6C>mesi ve ~* b<>y<EFBFBD>k/k<><6B><EFBFBD>k harfe duyars<72>z d<>zenli ifade e<>le<6C>mesi yapar.
|
||||
B<>y<EFBFBD>k/k<><6B><EFBFBD>k harfe duyarl<72> olan LIKE'in b<>y<EFBFBD>k/k<><6B><EFBFBD>k harfe duyars<72>z olan bi<62>ini ILIKE't<>r ve PostgreSQL
|
||||
@ -753,7 +749,7 @@ how to do it.
|
||||
|
||||
CREATE INDEX tabindex on tab (lower(col));
|
||||
|
||||
4.13) Bir sorguda, bir alanin "NULL" oldugunu nasil ortaya <20><>karabilirim?
|
||||
4.13) Bir sorguda, bir alanin "NULL" oldugunu nas<EFBFBD>l ortaya <20><>karabilirim?
|
||||
|
||||
Kolonu, IS NULL ve IS NOT NULL ile test edebilirsiniz.
|
||||
|
||||
@ -779,14 +775,14 @@ BYTEA bytea variable-length byte array (null-byte safe)
|
||||
doldurur; ancak VARCHAR(n) sadece verilen karakterleri saklar.BYTEA binary veri saklamak i<>indir; ayr<79>ca "NULL" bayt
|
||||
i<>eren de<64>erleri de saklar. Burada anlat<61>lan <20><> veri tipi de benzer ba<62>ar<61>m karakteristiklere sahiptir.
|
||||
|
||||
4.15.1) Nasil serial/otomatik artan(auto-incrementing) bir alan yaratabilirim?
|
||||
4.15.1) nas<EFBFBD>l serial/otomatik artan(auto-incrementing) bir alan yaratabilirim?
|
||||
|
||||
PostgreSQL'de SERIAL veri tipi vard<72>r. Bu veri tipi bir sequence ve kolon <20>zerinde bir indeks yarat<61>r.
|
||||
|
||||
<20>rnek, a<>a<EFBFBD><61>daki sorgu:
|
||||
|
||||
CREATE TABLE person (
|
||||
id SER<EFBFBD>AL,
|
||||
id SERIAL,
|
||||
name TEXT
|
||||
);
|
||||
|
||||
@ -803,19 +799,16 @@ BYTEA bytea variable-length byte array (null-byte safe)
|
||||
tekil bir say<61> olarak alabilirsiniz. Ancak, veritaban<61>n<EFBFBD>z<EFBFBD>n dump'<27>n<EFBFBD> al<61>p yeniden y<>klerseniz, OID de<64>erlerini
|
||||
koruyabilmek i<>in pg_dump'<27>n -o parametresini ya da "COPY WITH OIDS" se<73>ene<6E>ini kullanman<61>z gerekecektir.
|
||||
|
||||
4.15.2) SERIAL giri<72>inin degerini nasil alabilirim?
|
||||
|
||||
One approach is to retrieve the next SERIAL value from the sequence object with the nextval() function before
|
||||
inserting and then insert it explicitly. Using the example table in 4.15.1, an example in a pseudo-language would
|
||||
look like this:
|
||||
4.15.2) SERIAL giri<72>inin degerini nas<EFBFBD>l alabilirim?
|
||||
|
||||
Bir yakla<6C><61>m, sequence nesnesindeki SERIAL de<64>erini, veriyi girmeden <20>nce nextval() ile al<61>p, ald<6C><64><EFBFBD>n<EFBFBD>z de<64>eri
|
||||
kendinizin girmesidir. 4.15.1'deki <20>rnek tabloyu kullanarak bir <20>rnek verelim:
|
||||
|
||||
new_id = execute("SELECT nextval('person_id_seq')");
|
||||
execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
|
||||
|
||||
You would then also have the new value stored in new_id for use in other queries (e.g., as a foreign key to the
|
||||
person table). Note that the name of the automatically created SEQUENCE object will be named
|
||||
<table>_<serialcolumn>_seq, where table and serialcolumn are the names of your table and your SERIAL column,
|
||||
respectively.
|
||||
Di<44>er sorgular i<>in new_id'de yeni de<64>erin saklanmas<61> gerekir. Otomatik olarak yarat<61>lan SEQUENE nesnesinin ad<61>,
|
||||
<tablo ad<61>>_<serial kolonu ad<61>>_seq <20>eklinde olacakt<6B>r (< > i<>aretleri olmadan).
|
||||
|
||||
Alternatif olarak, atanm<6E><6D> SERIAL de<64>erini, de<64>er girildikten sonra currval() fonksiyonu ile alabilirsiniz:
|
||||
|
||||
@ -823,8 +816,8 @@ respectively.
|
||||
new_id = execute("SELECT currval('person_id_seq')");
|
||||
|
||||
Son olarak, <20>n tan<61>ml<6D> de<64>eri bulmak i<>in INSERT ifadesinden d<>nen OID de<64>erini kullanabilirsiniz; ancak bu
|
||||
en az ta<74><61>nabilir <20><>z<EFBFBD>m olacakt<6B>r. Perl'de, Edmund Mergl'in DBD:Pg m<>d<EFBFBD>l<EFBFBD> ile birlikte DBI kullanarak, oid de<64>eri
|
||||
$sth->execute() <20>al<61><6C>t<EFBFBD>r<EFBFBD>ld<6C>ktan sonra $sth->(pg_oid_status) ile al<61>nabilir.
|
||||
en az ta<74><61>nabilir <20><>z<EFBFBD>m olacakt<6B>r. Perl'de, Edmund Mergl'in DBD:Pg m<>d<EFBFBD>l<EFBFBD> ile birlikte DBI kullanarak, OID de<64>eri
|
||||
$sth->execute() <20>al<61><6C>t<EFBFBD>r<EFBFBD>ld<6C>ktan sonra $sth->(pg_OID_status) ile al<61>nabilir.
|
||||
|
||||
4.15.3) currval() ve nextval() diger kullanicilara sorun yaratmaz m<>?
|
||||
|
||||
@ -838,41 +831,34 @@ respectively.
|
||||
bitene kadar o de<64>er kilitlenmez. Bu, iptal edilen transaction i<>lemleri nedeniyle bo<62>luklara neden olur.
|
||||
|
||||
4.16) OID nedir? TID nedir?
|
||||
|
||||
O<>Ds are PostgreSQL's answer to unique row ids. Every row that is
|
||||
created in PostgreSQL gets a unique O<>D. All O<>Ds generated during
|
||||
initdb are less than 16384 (from backend/access/transam.h). All
|
||||
user-created O<>Ds are equal to or greater than this. By default, all
|
||||
these O<>Ds are unique not only within a table or database, but unique
|
||||
within the entire PostgreSQL installation.
|
||||
|
||||
PostgreSQL uses O<>Ds in its internal system tables to link rows
|
||||
between tables. These O<>Ds can be used to identify specific user rows
|
||||
and used in joins. <20>t is recommended you use column type O<>D to store
|
||||
O<>D values. You can create an index on the O<>D field for faster
|
||||
access.
|
||||
|
||||
O<EFBFBD>Ds are assigned to all new rows from a central area that is used by
|
||||
all databases. <20>f you want to change the O<>D to something else, or if
|
||||
you want to make a copy of the table, with the original O<>Ds, there is
|
||||
no reason you can't do it:
|
||||
CREATE TABLE new_table(old_oid oid, mycol int);
|
||||
SELECT old_oid, mycol <20>NTO new FROM old;
|
||||
|
||||
OIDler, tekil sat<61>r numaralar<61>na PostgreSQL'in yan<61>t<EFBFBD>d<EFBFBD>r. PostgreSQL'de yarat<61>lan her say<61>, tekil bir OID al<61>r.
|
||||
initdb i<>lemi s<>ras<61>nda yarat<61>lan t<>m OID'ler 16384'ten k<><6B><EFBFBD>kt<6B>r (backend/access/transam.h). Kullan<61>c<EFBFBD>lar taraf<61>ndan
|
||||
yarat<EFBFBD>lan t<>m OID'ler bu say<61>ya e<>it ya da bu say<61>dan b<>y<EFBFBD>kt<6B>r. Varsay<61>lan durumda, t<>m bu OIDler sadece bir tablo ya
|
||||
da veritaban<61>nda de<64>il, t<>m PostgreSQL kurulumunda tekildir.
|
||||
|
||||
PostgreSQL OIDleri, tablolar aras<61>nda sat<61>rlar<61> ili<6C>kilendirmek i<>in kendi i<> tablolar<61>nda kullan<61>r. Bu OIDler
|
||||
belirli kullan<61>c<EFBFBD> sat<61>rlar<61>n<EFBFBD> belirtmek i<>in kullanabilir ve join i<>lemlerinde kullan<61>l<EFBFBD>r. OID de<64>erlerini saklamak
|
||||
i<EFBFBD>in OID kolon tipini kullanman<61>z <20>nerinir. Daha h<>zl<7A> bir eri<72>im i<>in, OID alan<61>nda bir index yaratabilirsiniz.
|
||||
|
||||
OID'ler yeni sat<61>rlara, t<>m veritabanlar<61> taraf<61>nda kullan<61>lan ortak bir alandan atan<61>rlar. E<>er OID'i ba<62>ka bir
|
||||
de<EFBFBD>ere e<>itlemek isterseniz ya da tablonun bir kopyas<61>n<EFBFBD> orijinal OIDler ile <20><>karmak isterseniz, bu m<>mk<6D>nd<6E>r:
|
||||
|
||||
CREATE TABLE new_table(old_OID OID, mycol int);
|
||||
SELECT old_OID, mycol <20>NTO new FROM old;
|
||||
COPY new TO '/tmp/pgtable';
|
||||
DELETE FROM new;
|
||||
COPY new W<EFBFBD>TH O<EFBFBD>DS FROM '/tmp/pgtable';
|
||||
COPY new WITH OIDS FROM '/tmp/pgtable';
|
||||
|
||||
O<>Ds are stored as 4-byte integers, and will overflow at 4 billion. No
|
||||
one has reported this ever happening, and we plan to have the limit
|
||||
removed before anyone does.
|
||||
|
||||
TIDs are used to identify specific physical rows with block and offset
|
||||
values. T<>Ds change after rows are modified or reloaded. They are used
|
||||
by index entries to point to physical rows.
|
||||
OIDler 4-bit tamsay<61> olarak saklan<61>rlar ve 4 milyarda overflow olacakt<6B>r. Kimse bu say<61>ya ula<6C>t<EFBFBD><74><EFBFBD>na dair bir bilgi
|
||||
iletmedi ve bu s<>n<EFBFBD>r<EFBFBD> kimse bu s<>n<EFBFBD>ra ula<6C>madan kald<6C>raca<63><61>z.
|
||||
|
||||
TIDler, belirli fiziksel sat<61>rlar block ve offset de<64>erleri ile belirtmekte kullan<61>l<EFBFBD>r. TIDler, sat<61>rlar de<64>i<EFBFBD>ti<74>inde
|
||||
ya da yeniden y<>klendi<64>inde de<64>i<EFBFBD>irler. Index girdileri taraf<61>ndan fiziksel sat<61>rlar<61> g<>stermek i<>in kullan<61>l<EFBFBD>rlar.
|
||||
|
||||
4.17) PostgreSQL'de kullan<61>lan baz<61> terimlerin anlamlar<61> nelerdir?
|
||||
|
||||
Kaynak kodun bir k<>sm<73> ve eski belgeler, daha genis kullan<61>m alan<61> olan terimleri
|
||||
Kaynak kodun bir k<>sm<73> ve eski belgeler, daha geni<EFBFBD> kullan<61>m alan<61> olan terimleri
|
||||
kullan<61>rlar. Bunlar<61>n baz<61>lar<61>:
|
||||
|
||||
* table, relation, class
|
||||
@ -892,31 +878,31 @@ respectively.
|
||||
|
||||
4.18) Neden "ERROR: Memory exhausted in AllocSetAlloc()"? hatas<61>n<EFBFBD> al<61>yorum?
|
||||
|
||||
Sisteminizde sanal belleginizi t<>ketmis olabilirsiniz, ya da <20>ekirdeginiz
|
||||
belli kaynaklar icin d<><64><EFBFBD>k bir s<>n<EFBFBD>ra sahip olabilir. postmasteri baslatmadan <20>nce
|
||||
asagidakileri deneyebilirsiniz:
|
||||
Sisteminizde sanal belle<EFBFBD>inizi t<>ketmis olabilirsiniz, ya da <20>ekirde<EFBFBD>iniz
|
||||
belli kaynaklar icin d<><64><EFBFBD>k bir s<>n<EFBFBD>ra sahip olabilir. Postmaster'i ba<EFBFBD>latmadan <20>nce
|
||||
a<EFBFBD>a<EFBFBD><EFBFBD>dakileri deneyebilirsiniz:
|
||||
|
||||
ulimit -d 262144
|
||||
limit datasize 256m
|
||||
|
||||
Kabu<62>unuza ba<62>l<EFBFBD> olarak, bunlardan sadece biri olumlu sonu<6E> verecektir, ama
|
||||
bu i<>lem veri segment s<>n<EFBFBD>r<EFBFBD>n<EFBFBD>z<EFBFBD> artt<74>racak, ve belki de sorgunuzun tamamlanmas<61>n<EFBFBD>
|
||||
saglayacakt<6B>r. Bu komut, varolan isleme (current process) ve komut <20>al<61>st<73>r<EFBFBD>ld<6C>ktan
|
||||
sonraki t<>m alt islemlere uygulanir. Eger SQL istemcinizle, backendin <20>ok fazla veri
|
||||
d<>nd<6E>rmesi nedeniyle bir sorun yas<EFBFBD>yorsan<EFBFBD>z, bunu istemciyi baslatmadan <20>nce deneyiniz.
|
||||
saglayacakt<6B>r. Bu komut, varolan s<EFBFBD>rece (current process) ve komut <20>al<61>st<73>r<EFBFBD>ld<6C>ktan
|
||||
sonraki t<>m alt islemlere uygulan<EFBFBD>r. E<EFBFBD>er SQL istemcinizle, backendin <20>ok fazla veri
|
||||
d<>nd<6E>rmesi nedeniyle bir sorun ya<EFBFBD><EFBFBD>yorsan<EFBFBD>z, bunu istemciyi ba<EFBFBD>latmadan <20>nce deneyiniz.
|
||||
|
||||
4.19) Hangi PostgreSQL s<>r<EFBFBD>m<EFBFBD>n<EFBFBD> <20>al<61>st<73>rd<72>g<EFBFBD>m<EFBFBD> nasil g<>rebilirim?
|
||||
4.19) Hangi PostgreSQL s<>r<EFBFBD>m<EFBFBD>n<EFBFBD> <20>al<61>st<73>rd<72>g<EFBFBD>m<EFBFBD> nas<EFBFBD>l g<>rebilirim?
|
||||
|
||||
psql arabiriminde, select version(); yaz<61>n<EFBFBD>z.
|
||||
psql arabiriminde, SELECT version(); yaz<61>n<EFBFBD>z.
|
||||
|
||||
4.20) Neden large-object islemlerim, "invalid large obj descriptor"? hatas<61>n<EFBFBD> veriyor?
|
||||
|
||||
Large object islemlerinizin uclarina, yani lo_open ... lo_close komutlar<61>n<EFBFBD>n <20>evresine,
|
||||
BEGIN WORK ve COMMIT koyman<61>z gerekmektedir;
|
||||
Large object i<EFBFBD>lemlerinizin u<EFBFBD>lar<EFBFBD>na, yani lo_open ... lo_close komutlar<61>n<EFBFBD>n <20>evresine,
|
||||
BEGIN WORK ve COMMIT koyman<61>z gerekmektedir.
|
||||
|
||||
Eger ODBC gibi bir istemci arabirimi kullan<61>yorsan<61>z, auto-commit'i kapatman<61>z gerekebilir.
|
||||
|
||||
4.21) Su andaki zaman<61> <20>ntan<61>ml<6D> deger olarak kabul eden How do <20> create a column that will default to the current time?
|
||||
4.21) <EFBFBD>u andaki zaman<61> <20>ntan<61>ml<6D> de<EFBFBD>er olarak kabul eden kolonu nas<61>l yaratabilirim?
|
||||
|
||||
Alttakini kullanabilirsiniz:
|
||||
|
||||
@ -924,25 +910,29 @@ respectively.
|
||||
CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
|
||||
|
||||
4.22) Neden IN kullanan subquerylerim <20>ok yavas?
|
||||
|
||||
Currently, we join subqueries to outer queries by sequentially scanning the result of the subquery for
|
||||
each row of the outer query. IN' i EXISTS ile de<64>i<EFBFBD>tirerek bir <20><>z<EFBFBD>me ula<6C><61>labilir.
|
||||
|
||||
SELECT *
|
||||
7.4 s<>r<EFBFBD>m<EFBFBD>nden <20>nce, subqueryler. E<>er subquery sadece birka<6B> sat<61>r ve outer query bol say<61>da sat<61>r d<>nd<6E>r<EFBFBD>yorsa, IN
|
||||
en h<>zl<7A>s<EFBFBD>d<EFBFBD>r. Sorgular<61> h<>zland<6E>rmak i<>in IN yerine EXISTS kullan<61>n:
|
||||
|
||||
SELECT *
|
||||
FROM tab
|
||||
WHERE col1 <20>N (SELECT col2 FROM TAB2)
|
||||
WHERE col IN (SELECT subcol FROM subtab);
|
||||
|
||||
to:
|
||||
SELECT *
|
||||
sorgusunu, a<>a<EFBFBD><61>daki ile de<64>i<EFBFBD>tirin:
|
||||
|
||||
SELECT *
|
||||
FROM tab
|
||||
WHERE EX<EFBFBD>STS (SELECT col2 FROM TAB2 WHERE col1 = col2)
|
||||
WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
|
||||
|
||||
Bu s<>n<EFBFBD>rlamay<61> ilerdeki s<>r<EFBFBD>mlerimizde d<>zeltmeyi planlamaktay<61>z.
|
||||
Bunun h<>zl<7A> olabilmesi i<>in, subcol'un indekslenmi<6D> bir kolon olmas<61> gerekmektedir.
|
||||
|
||||
7.4 s<>r<EFBFBD>m<EFBFBD> ve sonras<61>nda, IN asl<73>nda normal sorgularla ayn<79> karma<6D><61>k join tekniklerini kullan<61>r ve EXISTS'e tercih
|
||||
edilir.
|
||||
|
||||
4.23) Outer join islemini nasil yapabilirim?
|
||||
4.23) Outer join islemini nas<EFBFBD>l yapabilirim?
|
||||
|
||||
PostgreSQL outer joins islemlerini SQL standartlar<61>n<EFBFBD> kullanarak ger<65>eklestirmektedir.
|
||||
Asagida 2 <20>rnek bulunmaktad<61>r:
|
||||
PostgreSQL outer join i<EFBFBD>lemlerini SQL standartlar<61>n<EFBFBD> kullanarak ger<65>ekle<EFBFBD>tirmektedir.
|
||||
A<EFBFBD>a<EFBFBD><EFBFBD>da 2 <20>rnek bulunmaktad<61>r:
|
||||
|
||||
SELECT *
|
||||
FROM t1 LEFT OUTER JO<4A>N t2 ON (t1.col = t2.col);
|
||||
@ -952,9 +942,9 @@ SELECT *
|
||||
SELECT *
|
||||
FROM t1 LEFT OUTER JO<4A>N t2 US<55>NG (col);
|
||||
|
||||
Bu <20>zdes sorgular t1.col ' i t2.col'ye join ederler ve ayn<79> zamanda t1'deki unjoined sat<61>rlar<61>
|
||||
(t2'de eslenmenis olanlarla) d<>nd<6E>r<EFBFBD>rler. R<EFBFBD>GHT JO<4A>N t2'nin unjoined sat<61>rlar<61>n<EFBFBD> ekleyecektir.
|
||||
Bir FULL join, e<>le<6C>mi<6D> bt<62>n sat<61>rlar<61> ve t1 ile t2'den t<>m ba<62>lanmam<61><6D> (unjoined) sat<61>rlar<61> al<61>r.
|
||||
Bu <20>zde<EFBFBD> sorgular t1.col ' i t2.col'ye join ederler ve ayn<79> zamanda t1'deki unjoined sat<61>rlar<61>
|
||||
(t2'de e<EFBFBD>lenmenis olanlarla) d<>nd<6E>r<EFBFBD>rler. RIGHT JO<4A>N t2'nin unjoined sat<61>rlar<61>n<EFBFBD> ekleyecektir.
|
||||
Bir FULL join, e<>le<6C>mi<6D> b<EFBFBD>t<EFBFBD>n sat<61>rlar<61> ve t1 ile t2'den t<>m ba<62>lanmam<61><6D> (unjoined) sat<61>rlar<61> al<61>r.
|
||||
OUTER s<>zc<7A><63><EFBFBD> se<73>imseldir ve LEFT, RIGHT ve FULL join i<>lemlerinde oldu<64>u kabul edilir. S<>radan
|
||||
join i<>lemleri INNER join olarak adland<6E>r<EFBFBD>l<EFBFBD>r.
|
||||
|
||||
@ -970,28 +960,28 @@ SELECT *
|
||||
WHERE tab1.col1 NOT <20>N (SELECT tab2.col1 FROM tab2)
|
||||
ORDER BY col1
|
||||
|
||||
4.24) Ayni andan birden fazla veritabaninda nasil islem yapabilirim?
|
||||
|
||||
4.24) Ayn<EFBFBD> anda birden fazla veritaban<EFBFBD>nda nas<EFBFBD>l i<EFBFBD>lem yapabilirim?
|
||||
|
||||
Mevcut veritaban<61>n<EFBFBD>z d<>s<EFBFBD>ndaki baska bir veritaban<61>n<EFBFBD>z<EFBFBD> sorgulaman<61>z<EFBFBD>n bir yolu bulunmamaktad<61>r.
|
||||
bunun nedeni, PostgreSQL'in veritaban<61>na <20>zel sistem kataloglar<61> y<>klemesidir. Bu nedenle,
|
||||
cross-database bir sorgunun nasil davranacag<61>n<EFBFBD> kestirmek zordur.
|
||||
cross-database bir sorgunun nas<EFBFBD>l davranacag<61>n<EFBFBD> kestirmek zordur.
|
||||
|
||||
contrib/dblink fonksiyon <20>a<EFBFBD>r<EFBFBD>lar<61>n<EFBFBD> kullanarak cross-database sorgulara izin verid. Tabii ki,
|
||||
bir istemci degisik veritabanlar<61>na ayn<79> anda erisim saglayabilir ve bilgiyi bu sekilde
|
||||
birlestirebilir.
|
||||
contrib/dblink fonksiyon <20>a<EFBFBD>r<EFBFBD>lar<61>n<EFBFBD> kullanarak cross-database sorgulara izin vermektedir. Tabii ki,
|
||||
bir istemci de<EFBFBD>i<EFBFBD>ik veritabanlar<61>na ayn<79> anda eri<EFBFBD>im sa<EFBFBD>layabilir ve bilgiyi bu sekilde
|
||||
birle<EFBFBD>tirebilir.
|
||||
|
||||
4.25) Bir fonksiyondan nas<61>l <20>oklu sat<61>r ya da kolon d<>nd<6E>rebilirim?
|
||||
|
||||
7.3 s<>r<EFBFBD>m<EFBFBD>nde, bir fonksiyondan kolayl<79>kla <20>oklu sat<61>r ya da s<>tun d<>nd<6E>rebilirsiniz.
|
||||
|
||||
http://techdocs.postgresql.org/guides/SetReturningFunctions.
|
||||
http://techdocs.postgresql.org/guides/SetReturningFunctions .
|
||||
|
||||
4.26) Neden Pl/PgSQL fonksiyonlar<61> i<>inden g<>venli bir <20>ekilde tablo yaratma/kald<6C>rma i<>lemlerini yapam<61>yoruz?
|
||||
4.26) Neden PL/pgSQL fonksiyonlar<61> i<>inden g<>venli bir <20>ekilde tablo yaratma/kald<6C>rma i<>lemlerini yapam<61>yoruz?
|
||||
|
||||
PL/PgSQL fonksiyon i<>erikleri cacheler. Bunun istenmeyen bir taraf<61>, e<>er bir PL/PgSQL fonksiyonu ge<67>ici bir
|
||||
PL/pgSQL fonksiyon i<>erikleri cacheler. Bunun istenmeyen bir taraf<61>, e<>er bir PL/pgSQL fonksiyonu ge<67>ici bir
|
||||
tabloya eri<72>iyorsa ve bu tablo ileride kald<6C>r<EFBFBD>l<EFBFBD>p yeniden olu<6C>turulduktan sonra fonksiyon yeniden <20>a<EFBFBD>r<EFBFBD>l<EFBFBD>rsa,
|
||||
fonksiyon <20>al<61><6C>mayacakt<6B>r; <20><>nk<6E> cachelenmi<6D> fonksiyon hala eski ge<67>ici tabloyu g<>steriyor olacakt<6B>r. <20><>z<EFBFBD>m,
|
||||
ge<67>ici tablo eri<72>imleri i<>in PL/PgSQL'de EXECUTE kullanmakt<6B>r. Bu, sorgunun her seferinde yeniden i<>lenmesini
|
||||
ge<67>ici tablo eri<72>imleri i<>in PL/pgSQL'de EXECUTE kullanmakt<6B>r. Bu, sorgunun her seferinde yeniden i<>lenmesini
|
||||
sa<73>layacakt<6B>r.
|
||||
|
||||
4.27) Hangi replikasyon se<73>enekleri bulunmaktad<61>r?
|
||||
@ -1005,33 +995,36 @@ SELECT *
|
||||
4.28) Hangi <20>ifreleme se<73>enekleri bulunmaktad<61>r?
|
||||
|
||||
* contrib/pgcrypto SQL sorgular<61>nda kullan<61>labilmesi i<>in <20>ifreleme fonksiyonlar<61> i<>ermektedir.
|
||||
* <20>stemciden sunucuya ileti<74>imi <20>ifrelemenin tek yolu, pg_hba.conf i<>inde hostssl kullanmakt<EFBFBD>r.
|
||||
* <20>stemciden sunucuya ileti<74>imi <20>ifrelemek i<>in, sunucuda ssl se<73>ene<6E>i postgresql.conf i<>inde a<><61>k olmal<61>d<EFBFBD>r.
|
||||
Ayr<79>ca,pg_hba.conf dosyas<61> i<>inde host ya da hostssl kayd<79> mutlaka olmal<61>d<EFBFBD>r ve istemci sslmode
|
||||
kapat<61>lmamal<61>d<EFBFBD>r. (Ayn<79> zamanda,PostgreSQL'in do<64>al SSL ba<62>lant<6E>lar<61> d<><64><EFBFBD>nda ssh ya da ssl gibi 3.parti
|
||||
<20>ifrelenmi<6D> veri iletimi de m<>mk<6D>nd<6E>r.)
|
||||
* Veritaban<61> kullan<61>c<EFBFBD> ad<61> ve <20>ifreleri 7.3 s<>r<EFBFBD>m<EFBFBD> ile birlikte otomatik olarak <20>ifrelenirler. <20>nceki
|
||||
s<>r<EFBFBD>mlerde, postgresql.conf i<>indeki PASSWORD_ENCRYPTION se<73>ene<6E>ini aktif hale getirmeniz gerekmektedir.
|
||||
s<EFBFBD>r<EFBFBD>mlerde, postgresql.conf i<>indeki PASSWORD_ENCRYPTION se<73>ene<6E>ini aktif hale getirmeniz gerekmektedir.
|
||||
* Sunucunun kendisini <20>ifreli dosya sistemi <20>zerinde <20>al<61><6C>t<EFBFBD>rabilirsiniz.
|
||||
|
||||
_________________________________________________________________
|
||||
|
||||
PostgreSQL <20>zelliklerini Geni<6E>letmek
|
||||
|
||||
5.1) Kullanici-tanimli bir fonksiyon yazdim. psql'de <20>alistirdigim zaman neden core dump ediyor?
|
||||
5.1) Kullan<EFBFBD>c<EFBFBD>-tan<EFBFBD>ml<EFBFBD> bir fonksiyon yazd<EFBFBD>m. psql'de <20>al<EFBFBD><EFBFBD>t<EFBFBD>rd<EFBFBD><EFBFBD><EFBFBD>m zaman neden core dump ediyor?
|
||||
|
||||
Sorunun nedeni birden fazla sey olabilir. Kullanici-tanimli fonksiyonunuzu stand-alone bir programda
|
||||
calistirmayi deneyiniz.
|
||||
|
||||
5.2) PostgreSQL'e nasil yeni tipler/fonksiyonlar ekleyeiblirim?
|
||||
5.2) PostgreSQL'e nas<EFBFBD>l yeni veri tipleri/fonksiyonlar ekleyebilirim?
|
||||
|
||||
<20>al<61>smalar<EFBFBD>n<EFBFBD>z<EFBFBD> pgsql-hackers e-posta listesine g<>nderiniz. Kodunuz incelendikten sonra
|
||||
<20>al<61><EFBFBD>malar<EFBFBD>n<EFBFBD>z<EFBFBD> pgsql-hackers e-posta listesine g<>nderiniz. Kodunuz incelendikten sonra
|
||||
/contrib dizinine konacakt<6B>r.
|
||||
|
||||
5.3) Bir tuple dond<EFBFBD>rmek icin bir C fonksiyonunu nasil yazar<61>m?
|
||||
5.3) Bir tuple d<EFBFBD>nd<EFBFBD>rmek icin bir C fonksiyonunu nas<EFBFBD>l yazar<61>m?
|
||||
|
||||
PostgreSQL 7.3 s<>r<EFBFBD>m<EFBFBD> ile birlikte, C, PL/PgSQL ve SQL kullan<61>larak tablo-d<>nd<6E>ren
|
||||
PostgreSQL 7.3 s<>r<EFBFBD>m<EFBFBD> ile birlikte, C, PL/pgSQL ve SQL kullan<61>larak tablo-d<>nd<6E>ren
|
||||
fonksiyonlar tamamen desteklenmektedir. Ayr<79>nt<6E>l<EFBFBD> bilgi i<>in "Programmer's Guide" a
|
||||
bakabilrisiniz. Bir <20>rne<6E>i contrib/tablefunc i<>inde bulabilirsiniz.
|
||||
bakabilirsiniz. Bir <20>rne<6E>i contrib/tablefunc i<>inde bulabilirsiniz.
|
||||
|
||||
5.4) Bir kaynak dosyas<61>nda de<64>i<EFBFBD>iklik yapt<70>m. Yeniden derlememe ra<72>men de<64>i<EFBFBD>iklik
|
||||
ge<EFBFBD>erli olmuyor. Neden?
|
||||
ge<EFBFBD>erli olmuyor. Neden?
|
||||
|
||||
Makefile'lar include dosyalar<61> i<>in tam bir ba<62><61>ml<6D>l<EFBFBD>k i<>ermezler.
|
||||
<20>ncelikle make clean, ard<72>ndan da baska bir make i<>lemi yapman<61>z gerekir.
|
||||
|
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user