
ha bu arada 9000 e yakın stok adedi var
bunu hızlandırmak için Fikir ve önerileriniz neler ?
Kolay gele
Kod: Tümünü seç
SELECT
SP_STOK_LST.SELF,
SP_STOK_LST.KODU,
SP_STOK_LST.ADI,
SP_STOK_LST.BR_FIYAT,
SP_STOK_LST.GIREN,
SP_STOK_LST.CIKAN,
SP_STOK_LST.KALAN,
SP_STOK_LST.REZ_CIKAN,
SP_STOK_LST.REZ_GIREN,
SP_STOK_LST.REZ_KALAN,
SP_STOK_LST.CAN_USE
FROM
SP_STOK_LST
Query Time
------------------------------------------------
Prepare : 0,00 ms
Execute : 141,00 ms
Avg fetch time: 141,00 ms
Memory
------------------------------------------------
Current: 1.009.096
Max : 1.043.656
Buffers: 2.048
Operations
------------------------------------------------
Read : 0
Writes : 3
Fetches: 7.375
Enchanced Info:
+--------------------------+-----------+-----------+---------+---------+---------+
| Table Name | Index | Non-Index | Updates | Deletes | Inserts |
| | reads | reads | | | |
+--------------------------+-----------+-----------+---------+---------+---------+
| FIS_DTL| 480 | 0 | 0 | 0 | 0 |
| STOK_KART| 35 | 0 | 0 | 0 | 0 |
+--------------------------+-----------+-----------+---------+---------+---------+
Kod: Tümünü seç
CREATE PROCEDURE SP_STOK_LST
RETURNS (
SELF INTEGER,
KODU VARCHAR (25),
ADI VARCHAR (50),
BR_FIYAT DOUBLE PRECISION,
GIREN DOUBLE PRECISION,
CIKAN DOUBLE PRECISION,
KALAN DOUBLE PRECISION,
REZ_CIKAN DOUBLE PRECISION,
REZ_GIREN DOUBLE PRECISION,
REZ_KALAN DOUBLE PRECISION,
CAN_USE DOUBLE PRECISION)
AS
BEGIN
FOR
SELECT
STOK_KART.SELF,
STOK_KART.KODU,
STOK_KART.ADI,
STOK_KART.BR_FIYAT,
(SELECT OUT_VAL FROM SP_CALC (1,STOK_KART.SELF) )AS GIREN,
(SELECT OUT_VAL FROM SP_CALC (2,STOK_KART.SELF) )AS CIKAN,
(SELECT OUT_VAL FROM SP_CALC (3,STOK_KART.SELF) )AS KALAN,
(SELECT OUT_VAL FROM SP_CALC (5,STOK_KART.SELF) )AS REZ_GIREN,
(SELECT OUT_VAL FROM SP_CALC (6,STOK_KART.SELF) )AS REZ_CIKAN,
(SELECT OUT_VAL FROM SP_CALC (7,STOK_KART.SELF) )AS REZ_KALAN,
(SELECT OUT_VAL FROM SP_CALC (-1,STOK_KART.SELF) )AS CAN_USE
FROM STOK_KART
ORDER BY STOK_KART.KODU
INTO :SELF,
:KODU,
:ADI,
:BR_FIYAT,
:GIREN,
:CIKAN,
:KALAN,
:REZ_CIKAN,
:REZ_GIREN,
:REZ_KALAN,
:CAN_USE
DO
BEGIN
SUSPEND;
END
END
Kod: Tümünü seç
SELECT
FIS_DTL.SELF,
FIS_DTL.MST_ID,
FIS_DTL.CARI_ID,
FIS_DTL.STOK_ID,
FIS_DTL.ADET,
FIS_DTL.BR_FIYAT,
FIS_DTL.ACT_TYPE
FROM
FIS_DTL
ORDER BY
FIS_DTL.SELF
Query Time
------------------------------------------------
Prepare : 0,00 ms
Execute : 16,00 ms
Avg fetch time: 16,00 ms
Memory
------------------------------------------------
Current: 972.068
Max : 1.170.180
Buffers: 2.048
Operations
------------------------------------------------
Read : 0
Writes : 7
Fetches: 570
Enchanced Info:
+--------------------------+-----------+-----------+---------+---------+---------+
| Table Name | Index | Non-Index | Updates | Deletes | Inserts |
| | reads | reads | | | |
+--------------------------+-----------+-----------+---------+---------+---------+
| FIS_DTL| 118 | 0 | 0 | 0 | 0 |
+--------------------------+-----------+-----------+---------+---------+---------+
Kod: Tümünü seç
SELECT
FIS_DTL.SELF,
FIS_DTL.MST_ID,
FIS_DTL.CARI_ID,
FIS_DTL.STOK_ID,
FIS_DTL.ADET,
FIS_DTL.BR_FIYAT,
FIS_DTL.ACT_TYPE,
SP_STOK_LST.SELF,
SP_STOK_LST.KODU,
SP_STOK_LST.ADI,
SP_STOK_LST.BR_FIYAT,
SP_STOK_LST.GIREN,
SP_STOK_LST.CIKAN,
SP_STOK_LST.KALAN,
SP_STOK_LST.REZ_CIKAN,
SP_STOK_LST.REZ_GIREN,
SP_STOK_LST.REZ_KALAN,
SP_STOK_LST.CAN_USE
FROM
FIS_DTL
INNER JOIN SP_STOK_LST ON (FIS_DTL.STOK_ID = SP_STOK_LST.SELF)
ORDER BY
FIS_DTL.SELF,
SP_STOK_LST.SELF
anlıyan çözen beri gelsinQuery Time
------------------------------------------------
Prepare : 0,00 ms
Execute : 33.672,00 ms
Avg fetch time: 33.672,00 ms
Memory
------------------------------------------------
Current: 5.157.432
Max : 9.291.804
Buffers: 2.048
Operations
------------------------------------------------
Read : 0
Writes : 1
Fetches: 1.635.919
Enchanced Info:
+--------------------------+-----------+-----------+---------+---------+---------+
| Table Name | Index | Non-Index | Updates | Deletes | Inserts |
| | reads | reads | | | |
+--------------------------+-----------+-----------+---------+---------+---------+
| FIS_DTL| 51473 | 0 | 0 | 0 | 0 |
| STOK_KART| 8240 | 0 | 0 | 0 | 0 |
+--------------------------+-----------+-----------+---------+---------+---------+
Kod: Tümünü seç
FROM
FIS_DTL
INNER JOIN SP_STOK_LST ON (FIS_DTL.STOK_ID = SP_STOK_LST.SELF)
Kod: Tümünü seç
FROM
SP_STOK_LST
INNER JOIN FIS_DTL ON (FIS_DTL.STOK_ID = SP_STOK_LST.SELF)
Zaten TUpdateSQL kullanıyorsan Query'de join olması bir şeyi etkilemeyecek... Ben boyle kullandım... Yani lookup olarak planladığım alanları Query icinde join ile gosterdim... Update ederken de ana tablodaki ID alanını update ettim...Freeman35 yazdı:join i kayıt girişlerinde kullanmadım hiç onu bir deniycem,
abi kafama takıldı simdi, updatesql hatta ibupdatesql kullanımını arastırdım biraz extra birkac avantajı dısında ibdataset ile aynı diyebilirimfahrettin yazdı: Zaten TUpdateSQL kullanıyorsan Query'de join olması bir şeyi etkilemeyecek... Ben boyle kullandım... Yani lookup olarak planladığım alanları Query icinde join ile gosterdim... Update ederken de ana tablodaki ID alanını update ettim...
Kod: Tümünü seç
Select P.PERSONEL_NO, P.AD, P.BOLUM_NO, B.AD as BOLUM
from PERSONEL as P, BOLUM as B
where P.BOLUM_NO=B.BOLUM_NO