SQL Query Tunning Hakkında

6 Ekim 2019 Pazar

Genellikle Oracle ve Microsoft SQL’de “tuning” den yani “performans artırma / akort yapma” donanım kaynaklı olarak düşünülür. Sunucu üzerinde daha fazla CPU, RAM vb. bileşenlere bakılır. Bir noktaya kadar doğru bir yaklaşımdır. Fakat kullanıcıların özellikle DML sorguları (Örn: Select) çalıştırdığında, bir miktar sunucu performansını etkileyecektir. Peki aynı anda 50 kullanıcı sorgu çalıştırırsa, arka planda raporlar çalışırsa? Durum kötüye gider…

Herhangi bir SQL sorgusu çalıştırıldığında, istenilen bilgiye nasıl ulaşılacağına “Optimizer” adı verilen veri tabanı optimizasyon birleşeni karar veriyor. Oracle, kullanıcılarına tahminler üzerine çalışan “Rule-Based Optimizer” ve daha çok akıl yürütme yöntemi ile çalışan “Cost-Based Optimizer” olmak üzere iki adet optimizasyon seçeneği sunmaktadır.

MS SQL’de de execution plan vb. kontroller ile sorgu anını kontrol edebiliriz. Sorgularda en çok can sıkan kısım, yanlış yazımlarla index’lerin kullanılamaması ve sorgu süresinin giderek artmasıdır.

Aşağıda sık kullanılan query örnekleri var. Bu örneklerde, yanlış kullanımı ve doğru kullanımı beraber yazdım.

HAVING yerine WHERE kullanımı:   
Önerilmez
SELECT product_type_id,
AVG(price)
FROM products
GROUP BY product_type_id
HAVING product_type_id IN ( 1, 2 );

Önerilir
SELECT product_type_id,
AVG(price)
FROM products
WHERE product_type_id IN ( 1, 2 )
GROUP BY product_type_id;

İkincisi işlemin başlangıcında kayıtları sınırlarken, ilkinde tüm kayıtlar için AVG çalıştırılıyor.

UNION yerine UNION ALL kullanımı
Önerilmez
SELECT product_id,
product_type_id,
name
FROM products
UNION
SELECT product_id,
product_type_id,
name
FROM more_products;

Önerilir
SELECT product_id,
product_type_id,
name
FROM products
UNION ALL
SELECT product_id,
product_type_id,
name
FROM more_products;

UNION ALL her iki sorgu sonucunda tüm kayıtları getirirken, UNION tekrarlanan kayıtları elemine ediyor. Bu nedenle, gerçekleşen eleme işleminden dolayı UNION ALL daha hızlıdır ve sistemi yormaz.

IN yerine EXISTS kullanımı:   
Önerilmez
SELECT product_id,
name
FROM products
WHERE product_id IN (
SELECT product_id
FROM purchases );

Önerilir
SELECT product_id,
name
FROM products pr
WHERE EXISTS (
SELECT 1
FROM purchases pu
WHERE pu.product_id = pr.product_id );

IN bir listede aranan verinin olup olmadığını kontrol eder. EXISTS sadece kayıtların varlığını kontrol ederken, IN ise gerçek verileri kontrol eder. Alt sorgularda EXISTS daha iyi sonuçlar verdiğinden tercih edilmelidir.

OR yerine UNION kullanımı:   
Önerilmez
SELECT ...
FROM ps_jrnl_header a
WHERE jrnl_hdr_status = ‘E’
OR EXISTS
( SELECT ‘x’
FROM ps_jrnl_header
WHERE business_unit_js = a.business.unit_js
AND journal_id = a.journal_id
AND unpost_seq = a.unpost_seq
AND jrnl_hdr_status = ‘E’ );

Önerilir
SELECT ...
FROM ps_jrnl_header a
WHERE jrnl_hdr_status = ‘E’
UNION
SELECT ...
FROM ps_jrnl_header a,
ps_jrnl_header b
WHERE a.business_unit_js = b.business.unit_js
AND a.journal_id = b.journal_id
AND a.unpost_seq = b.unpost_seq
AND a.jrnl_hdr_status = ‘E’
AND b.jrnl_hdr_status != ‘E’;

UNION kullanıldığında, optimizer kayıtları getirmek için iki benzer işlem gerçekleştirir. OR yapısında ise optimizer karar verirken daha karmaşık işlemler yapar ve daha az verimli sonuçlara ulaşır.

İndeks kullanımını engelleyen örnek bir sorgu:
Önerilmez
...
WHERE SUBSTR(account_name,1,7) = ‘CAPITAL’

Önerilir
...
WHERE account_name LIKE ‘CAPITAL%’

SUBSTR indeks kullanımını iptal eder.


Share/Bookmark

Ödeme Sistemlerinde HCE Kullanımı Hakkında

HCE (Host Card Emulation), mobil cihazın işletim sisteminin günlük hayatta kullandığımız kartları (kredi kartı, debit kart, gift kart vs.) emule ederek NFC ile temassız ödeme işlemini gerçekleştirmemize yarayan bir teknolojidir diyebiliriz. Başka bir deyişle, telefonlarımız ödemelerde kullandığımız kartlar gibi davranabiliyor.

Şu an Türkiye’de de çoğu banka HCE entegrasyonunu tamlamak üzere diyebilirim.

HCE ile ödemede ödeme için gerekli olan kart bilgilerinin telefon üzerinde tutulmasına gerek yoktur. İlgili kart bilgileri bulut üzerinde tutulmakta ve bu teknoloji, mevcut geleneksel yönteme göre hem kolay uygulanabilir hem de daha ucuzdur.  HCE teknolojisinde ne telefon üzerinde ne de SIM karta entegre bir çip olarak secure element yer almasına gerek yoktur. Mobil ödeme hizmeti sunan servis sağlayıcılara donanım bağımsızlığı bakımından büyük fayda sağlamaktadır. 

Türkiye’de birçok banka uygulamalarının Android versiyonlarında HCE ile mobil temassız ödeme yapılabilir. Bu uygulamaları kullanarak ödeme yapabilmek için 3 koşulun sağlanması yeterlidir:

1. İlgili banka adına alınmış bir kart sahibi olmak

2.  Güncel bir versiyon Android telefonuna sahip olmak.

3.  İşlem yapmadan önce eğer kapalıysa NFC özelliğini açmak gerekiyor.

Daha detaylı bilgi için aşağıdaki kaynaklara da bakabilirsiniz.

Mastercard

http://www.hceservice.com/ 

Visa

https://www.openwaygroup.com/way4-wallet-solution


Share/Bookmark

Eylül 2019 Dergi Paketi

Toplam Boyut 3.02 GB. Link silinmeden indirin!!!

https://turbobit.net/r1txuundwg9b/Agustos2019Dergiler.WT.rar.html


Share/Bookmark

Engellilerin ATM Kullanımı

Bankalar görme veya duyma engelli müşteriler için de  ATM kullanımı ve hizmeti sağlamak zorundalar. Yakın zamanda karşılaştığım ama genellikle bazı  bankaların çok umursamadığı bir durum.

Küçük bankalar, genellikle büyük banka şubeleri  veya ATM’leri o lokasyonda bulunuyorsa bu konuyla çok ilgilenmezler. Çünkü, yan yana veya birbirine uzaklığı 50 metreden az olan ATM’lerden sadece bir tanesinin aşağıdaki maddeler ile uyumlu olması yeterlidir. Bu durum haricindeki tüm ATM’lerin görme engellilere hizmet vermesi zorunludur.

Peki yasadaki maddelerin detayları nelerdir? Görme engelli müşterilerin erişimi ile ilgili maddeler altta yer almaktadır.

MADDE 7 – (1) Görme engelli müşterilerin kullanımına uygun ATM’lerde, ekranda gösterilen uyarılar, yönergeler, müşterinin girdilerine ilişkin istenilen onay, hata mesajları gibi bilgilerin sağlanmasına yönelik sesli menü fonksiyonu bulunur.

(2) ATM’lerdeki sesli menü hizmetinin mahremiyeti sağlanır. ATM’lerde sesli menü, kulaklık girişi veya telefon ahizesi gibi bütünsel anlamda erişilebilir bir teknoloji ile sunulur. İşlem öncesinde ya da işlemin herhangi bir aşamasında ATM ekranını kapalı konuma getirme seçeneği sunulur.

(3) ATM’lerde sesli menü kapsamında, asgari olarak bakiye sorgulama, para çekme, para yatırma, kredi kartı borcu sorgulama ve kredi kartı borcu ödeme işlemleri bulunur.

(4) ATM’lerde sesli menülerin gerektirdiği tuşlar üzerinde yer alan sembollerin kabartma olması ve dokunulduğunda diğer tuşlardan ayırt edilebilmesi sağlanır.

(5) ATM’lerde sesli menünün başlatılmasının kolaylıkla keşfedilebilir olması ve ek bir eğitim gerektirmeden kullanılması sağlanır. Kulaklık ile sesli menü sunuluyorsa, kulaklığın takılması ile otomatik olarak sesli menü başlar ve çıkarılması ile otomatik olarak sonlanır.

(6) ATM’lerde sesli menü kapsamında tekrarlama özelliği bulunur ve ses yüksekliğinin müşteri tarafından ayarlanabilmesine imkân tanınır.

(7) Sesli menü için kullanılan ifadelerin ve menü sırasının, tüm bankalarda standart olmasının sağlanmasına özen gösterilir. Bu kapsamdaki koordinasyon Türkiye Bankalar Birliği ve Türkiye Katılım Bankaları Birliği tarafından yürütülür.

(8) ATM’lere erişim için zemin üzerinde yönlendirmeye yarayan, çevredeki uygulamalarla bütünleştirilmiş, hissedilebilir yürüme yüzeyi işaretleri kullanılır.

(9) Banka, hizmet verdiği tüm ATM’lerini bu maddede yer verilen hükümlere göre görme engelli müşterilerin kullanımına uygun hale getirir.

(10) Yan-yana veya birbirine uzaklığı 50 metreden az olan ATM’lerden sadece bir tanesinin bu maddede yer verilen hükümler ile uyumlu olması yeterlidir. Söz konusu fiziksel uzaklıktaki diğer ATM’ler için bu madde ile uyumluluk şartı aranmaz.

Kaynak: http://www.resmigazete.gov.tr/eskiler/2016/06/20160618-2.htm


Share/Bookmark

Kitap Tavsiyesi: Mark Manson – Ustalık Gerektiren Kafaya Takmama Sanatı

Kitabın en güzel kısmı adı bence. Çünkü kafaya takmamak gerçekten ustalık isteyen bir beceri. Etrafımızda nadiren gördüğümüz dünya yansa umursamayacak tipler vardır. Ama o kafaya nasıl ulaştıklarını kimse bilmiyor. Doğuştan şanslı değillerse onların da kafaya takmamayı profesyonelliğe taşımak için çabalamış olmaları gerekir diye düşünüyorum:)

Kitabın; kafaya takmamak mümkün değildir ama kafaya takılacak şey tercihtir, yani seçim hakkınız var, kısmını sevdim.


Share/Bookmark

Rusya Ödeme Sistemi MIR Türkiye'de...

19 Mayıs 2019 Pazar

MIR Ödeme Sistemi operatörü NSPK (National Payment Card System) 2015'ten bu yana 3123 bankanın 160 değişik kart olarak 56 milyon kişi tarafından kullanılıyor. Ancak MIR diğer uluslararası kart ödeme sistemleri (UnionPay, JCB, Maestro ) ile uyumlu olmadığı için Rusya dışında kullanılamıyor. MIR kartlarının uluslararası kabulünü artırmak için çalışmalar sürdürülürken Türkiye sistemi kabul etmeye başlayan ilk ülke oldu. MIR kartlar, özellikle Rus turistler için çok önemli.

Rusya Ulusal Ödeme Kartları Sistemi  (MIR),  Türkiye İş Bankası'nın MIR kartlarıyla işleme Nisan ayı gibi başladı.

Şu anda Ziraat Bankası’nın POS ve ATM sertifikasyonu Banksoft tarafından yapılıyor. Sonrasında pilot testleri yapılacak ve prod yani saha kullanımı başlayacak.


Share/Bookmark

SQL Server 2017 Veri Güvenliği

Müşterilerimizin veya potansiyel müşterilerimizin verilerini gerek  6698 sayılı Kişisel Verilerin Korunması Kanunu düzenlemelerini göre dikkatlice korumamız gerekiyor.

Microsoft SQL Server ortamlarında aşağıdaki önlemler alınabilir:

1- Ortamları Ayırmak:
Canlı (live/prod), test ve  pre-prod/UAT şeklinde ortamlarınızı ayırın.

2- Görevler Ayrılığı İlkesi:

Veri tabanınıza giriş hakkının sadece ilgili kişilerde olmasını sağlayın.

3- Uygulama/test Kullanıcılara Sınırlama:

Uygulamalarımız için oluşturduğumuz ve adına uygulamal kullanıcı diyebileceğimiz kullanıcıları gerçek kullanıcılar kullanmamalı.

4- Anonim Kullanıcılar:

Birçok ortamda şirketteki tüm çalışanların "sa", "master", "admin" gibi anonim kullanıcıları mümkün olduğu kadar kullanılmamalı.  Veritabanına erişimi olacak çalışanlarına kendi kullanıcısının sorumluluğu anlatılmalıdır.

5- Sadece Gerektiği Kadar Yetki Verilmesi:

Bir yazılımcının temel ihtiyaçları SP/Function/Trigger yetkileri düzenlemeli. Ayrıca, aşağıdaki DML işlemleri (SELECT, INSERT, UPDATE,  DELET) için de yetkiler sınırlandırılmalıdır.

6-Veri Yedeklerken Güvenlik:
Mümkünse veritabanlarınızı şifreleyerek yedekleyin. Bunun için “Transparent Data Encryption” kullanabilirsiniz. Kötü niyetli kişiler bir şekilde yedek dosyalarınıza ele geçirse bile,  veritabanlarını açamazlar.

7-Veritabanı Sunucularına Hatalı Ve Başarılı Girişleri Denetleme:
Eğer veritabanı sunucunuza art arda erişilmeye çalışılıyorsa ve hatalar alınıyorsa ya bir veritabanınız herhangi bir sebeple erişilemez duruma gelmişse sunucunuza içeriden veya dışarıdan "brute force" yöntemiyle erişilmeye çalışılıyordur.

Sadece başarısız giriş denemelerini değil, başarılı girişleri de kontrol etmemiz gerekiyor, ki eğer bir çalışanın veya uygulama kullanıcısının bilgileri kötü niyetli birisinin eline geçerse ve veritabanına bağlanırsa  bilgisi olması gerekir.

8-  SQL Authentication değil, Windows Authentication Kullanın:
Microsoft'a göre SQL Authentication uzun süredir "Deprecated" bir özellik, yani bir süre sonra kaldırılacak;. Microsoft'un bu özelliği kaldırmak istemesinin nedeni de güvenlik.  Windows Authentication kullanmak gerekir.

9-Yerel Güvenlik Politikası Kullanma:
Hem yeni kullanıcılar oluştururken, hem de varolan kullanıcılarınız için Windows işletim seviyesindeki Yerel Güvenlik Politikalarından faydalanın. Bu sayede kullanıcılarınızın Login şifrelerinin belli bir uzunlukta ve zorlukta belirlenmesini sağlayabilirsiniz.


Share/Bookmark

Kitap Tavsiyesi: Körlük - Jose Saramago

Jose Saramago Nobel ödüllü bir yazar. Yazarın yazdığı en etkileyici kitaplardan biri. Konusu da çok ilginç:

Araba kullanmakta olan bir adam, yeşil ışığın yanmasını beklerken ansızın körleşiyor. Körlüğü, başvurduğu doktora da bulaşır.

Bu körlük, bir salgın hastalık gibi bütün kente yayılır. Toplum, görmeyen gözlerle cinayetlere, tecavüzlere tanık olur. Ayakta kalabilenler ancak güçlü olanlardır. Koca kentte körlükten kurtulan tek kişi, göz doktorunun karısıdır.


Share/Bookmark

Nisan 2019 Dergi Paketi

Toplam Boyut 11.94 GB. Link silinmeden indirin!!!

https://turbobit.net/2t28ksxw4aij/Nisan2019Dergiler.WT.rar.html


Share/Bookmark

SQL Server Performans Problemleri

17 Şubat 2019 Pazar

SQL Server’da  en korkulan performans problemleridir. SQL Server performansı denildiğinde ilk akla gelen şey, CPU ve Memory upgrade’nin yapılmasıdır. Genelde yazılım departmanları, SQL Server’a daha fazla CPU ve daha fazla memory verilmesini sistem ekiplerinden isterler. CPU ve memory ilave yapılan SQL Server’lar ilk başta biraz daha iyi gibi çalıştığı görülse de, aslında arka planda değişen hiçbir şey olmamıştır.

Bir SQL klasiği olan CPU ve memory arttırmak yerine, gerçekte SQL Server’ın performansını etkileyen unsurları incelemekte fayda var. İlk olarak SQL Server’a fazlasıyla donanım kaynağı (CPU, Ram) verdiniz, işletim sistemdeki performans ayalarını optimize ettiniz ve son olarak SQL Server’daki temel ayarları yaptığınız diyelim, bundan sonra performans için aşağıdakileri de incelememiz gerekir.

Hatalı indeksleme Problemi: SQL Server’ın en büyük performans problemlerinden biri, yetersiz ve hatalı indekslemedir. Bir sorgudaki indeksleme doğru yapılmadığında, SQL Server bu sorguyu çalıştırmak için, daha fazla data işlemek zorunda kalacak ve bu gereksiz yapılan işlemler, SQL Server’ın kurulu olduğu sunucu üzerinde, gereksiz şekilde CPU ve RAM tüketecektir.

CPU ve RAM’in gereksiz yere kullanılması ile birlikte, sorguların çalışma süreleri de paralel bir şekilde olumsuz etkilenecek, süreleri uzayan sorgular da, blockinglere ve deadlock’lara sebebiyet verecektir.

Blocking ve Deadlock’ların Çok Fazla Oluşması: Bir satırdaki veriyi, aynı anda güncellemek istediğinizde SQL Server buna izin vermez. Veri bütünlüğünü sağlamak için blocking mekanizmasını devreye sokar. Bu mekanizma veri sağlığı için gayet başarılı bir kurgudur. Fakat blockinglerin sürekli ve sık sık yaşanması, SQL Server’da yavaşlıklara neden olmaktadır. Sürekli yaşanan blockingler, bir sorun olduğunun göstergesidir. Deadlock’lar, ortak bir kaynağa erişmeye çalışan iki prosesin birbirini kilitlemesi ile başlayan, ardından query engine’nin en az maliyetli olan prosesi kill etmesiyle yani durdurmasıyla son bulan bir operasyondur. Bu kill edilen prosese deadlock victim denir.

Deadlockların genel olarak bir SQL Server temel sorunu olarak görülür. Veri bütünlüğü bir sorgunun çalışma zamanı; blocking ve deadlocklardan olumsuz bir şekilde etkilenebilir.

Hatalı İstatistikler (Statistics): SQL Server’ın performans hesaplama temelleri, maliyet bazlı optimizasyona dayanır. Verinin kullanımda en çok ihtiyaç duyulan indekslerdir. İndekslerin de etkili bir şekilde kullanılmasında da statisticslerin doğru yapılandırılması çok önemlidir.

Doğru statisticsler olmadığında, SQL Server sorgulardaki satır sayısı tahminlemesin de yanlış yapabilir. Satır sayısını tahminlemenin sorgu performansına etkisi ise, örnek olarak 10bin satır gelecek olan bir sorgunun, estimated row number değeri 1milyon olarak tahminlendiğin de, gereksiz yere IO kullanımı ortaya çıkacak ve sorgu sonucu uzun süren bir işleme girebilir.

Uygun Olmayan Sorgu Tasarımı: İndekslerin etkin bir biçimde kullanılması, SQL sorgularının yazım biçimiyle ilişkili bir yapısı vardır. Bir tabloda çok sayıda satırın döndüğü bir sonuç kümesini olması veya bir tablodan daha büyük bir sonuç döndüren bir filtre kriterini belirtilmesi durumlarında kullanılan indekslerde etkisiz kalabilmektedir.

Maliyet yani cost değerlerine dikkat edilmeden yazılan SQL sorguları, optimizer’ın uygun indeksleri seçmesini engellemektedir, bunun sonucunda da sorgu çalışma zamanlarının uzaması ve blockinglerin artmasına sebep olabilir.

Doğru Set Edilmemiş SQL Operatörleri: Transact SQL dili veri kümeleri üzerinde çalışan bir sorgulama dilidir. Bunun anlamı, satır olarak düşündüğünüz bir yazılım dilinin, kolonlar bazında yani veri alanları açısından düşünmeniz gerektiğidir. T-SQL kodlarını yazarken de, düz yazı gibi yazmak yerine kümelenmiş verilerin kolonlar bazında sorgulanmasını düşünerek olur.

Cursor kullanımları ve gereksiz döngüler kullanıldığında, subquery’lerde ve join’lerdeki döngüyü gözden kaçırmanıza neden olabilir. Özellikle cursor kullanımı için performans killer tabirini kullanmak yerinde olur. Cursor yerine while operatörünü kullanmak ve sorgularınızı while döngüsü ile optimize edilmesi daha iyi olacaktır.

Sıkça yapılan SELECT * kullanımları da gereksiz IO tüketimlerine sebep olacaktır, * yerine ne kadar alan sorgulanmak isteniyor ise bu alanların isimleri üşenmeden yazılmalıdır.

Uygun Olmayan Veritabanı Tasarımı: Veritabanı tasarımları genellikle yazılımı yazanlar tarafından veya yazılım yazımında kullanılan hazır frameworkler tarafından otomatik olarak yapılıyor. Özellikle hızlı ve pratik kod yazmak için, son zamanlarda bu tarz yapıların kullanımı artmaktadır.

Veritabanı tasarlarken ilk dikkat edilmesi gereken nokta, veri işleme manipülasyon ve blockinglerin olmaması için, tablo tasarımlarının optimize şekilde olması gerekiyor.

Optimize bir veritabanı nasıl tasarlanmalı konusu için, bir örnek üzerinden gidelim. Müşteri adresi ve müşteri kart bilgileri bizim verilerimiz olsun. İşin kolayına kaçarak, müşteri adresi ve müşteri kart bilgileri tek tablo üzerinde tutarsanız eğer, verileriniz büyüdükçe, bir müşteri adresini ararken aynı zamanda gereksiz olarak müşteri kart bilgileri içinde kaynak harcayacaksınız. Her veriyi tek tablo üzerinde tuttuğunuz da ise zamanla blockingler çoğalacak ve veritabanınız içinden çıkılmayacak bir hale dönüşecektir.


Share/Bookmark

3D Secure 2.0'a Geçiş Ne Kadar Gerekli?

Daha önceki yazımda (Aşağıdaki linkden ulaşabilirsiniz),

http://ercumentyenikaya.blogspot.com/2017/08/3d-secure-20-hakknda.html

Visa ve MC'nin 2017’de duyurduğu, 3D Secure 2.0 Nisan ve Mayıs 2019  gibi bankalarda devreye alınmaya hazırlanıyor. Tabii ki test ve sertifikasyon süreçleri var. Bankalara toplantı için mail gönderildi.

3D Secure 2.0 ile işlem sürelerinin aşağıya çekilmesi ve işlem tamamlanma oranlarını yükseltme hedefleniyor. Bu konuda Visa’nın paylaştığı rakamlar, her 100 işlemden en az 95’inin kimlik doğrulamaya ihtiyaç duymadan işleme devam edeceği, %85 oranında ödeme sürecinin kısalacağı ve %70 oranında işlem terk etmenin azalacağı yönündedir. Aynı zamanda mobil ve digital cüzdan da destekleniyor.

3D Secure 1.0’dan Beklentiler Neydi?:

Kart sahiplerinin kimlik doğrulama süreci ile dolandırıcılık ve chargeback oranlarında azalma İşlem sayılarında ve cirolarında artış Farklı doğrulama teknolojilerine destek (Şifre Sorgulama, Chip Kartlar, Biometrik Kontrol). İnternet erişiminde kullanılan farklı uygulamalara destek (PC, Mobil Telefon, PDA, TV).

3D Secure 1.0’ın Temel Problemleri:

Uzun işlem akışı nedeniyle düşük conversion’a neden olması standart web browser üzerinden çalışması nedeniyle app, mobil ve digital cüzdanı desteklememesi. Sadece şifre ile kimlik doğrulama yapabilmesi ve her işlemde zorunlu olarak bu doğrulamayı istemesi, doğrulama ekranlarının non-responsive olması nedeniyle tablet ve akıllı telefonlarda kullanım zorluğuolmasıydı.

Bu problemlerden dolayı, bazı beklentileri tam anlamıyla karşılayamaması ve mevcut temel sıkıntılar nedeniyle 3D Secure 2.0‘a geçiş kaçınılmaz oldu.

3-D Secure 2.0’da Bulunan Akış:

-Kart bilgileri işyerinin ödeme sayfasına girilecek ve 3D Secure ödeme yöntemi seçilecek. 

-İşyeri bankası, kart bilgileri ve işlem datasını otorizasyon talebi içinde kart bankasına gönderecek.   

-Kart bankası işlem riskini kendisine ulaşan verilere dayanarak belirleyecek/ölçecek. Eğer işlemi riskli bulursa, kimlik doğrulama talep edecek. İşlemi düşük riskli bulursa herhangi bir ekstra kimlik doğrulama talep etmeyecek. Ve buna göre otorizasyon cevabını dönecek.

-İşyeri bankası, kimlik doğrulama sonucu ile birlikte dönen otorizasyon cevabına göre işlemi tamamlayacak.


Share/Bookmark

SQL Server SP (Store Procedure) Versiyonlama

SQL Server’da genel de kullanılmayan güzel özelliklerden biri olan Stored Procedure ( Saklı Yordamlar) versiyonlamadan bahsediyor olacağım.

Bu özelliği mevcut SP’leri revize ederken ya da değiştireceğiniz zaman yeni bir isimde oluşturmak yerine versiyonlayıp kullanabilirsiniz.

Aşağıda yer alan “Create Procedure” içeriğini inceleyecek olursanız syntax bölümünde “; numara” ile yazan kısım var. Kullanımı aslında gayet basit olmakla beraber aynı isimdeki Stored Procedure’leri gruplamak için kullanılması ve versiyonlamasını göstermektedir.

Bir Örnek ile inceleyelim. Yeni bir sp oluşturuyoruz:

CREATE PROCEDURE dbo.DenemeKayitGetir as
select ‘YeniSP’ as Baslik

Aynı sp’yi “; numara” ifadesi ile versiyonluyoruz.

CREATE PROCEDURE dbo.DenemeKayitGetir ;2
as
select ‘YeniSP_New’ as Baslik


Share/Bookmark

Kredi Kartı İşlemlerinin Kapatılma Zorunluluğu

Müşteri açısından bakıldığında, bir işyerinde mal ya da hizmet alımı bittiğinde genelde süreç bitmiştir. Zamanı geldiğinde işlem ekstreye yansır. Kart borçlanır ve müşteri ekstresi kesildiğinde ödemeyi yapar. Fakat, bazı durumlarda, yaptığınız bir kartlı alışveriş bir türlü borç olarak yansımaz. Bu işlemin neden yansıtılmadığını merak edersiniz.

Bazen de yaptığınız bir internet alışverişinde aynı tutarda birden fazla işlem görürsünüz, bir müddet sonra bu birden fazla aynı işlemden yanlızca bir tanesinin dönem içi hareketlerine yansıdığını görürsünüz. Bu gibi durumların sebebi bu Batch Close (Batch Kapama) sorunudur.

Kapama provizyonu alınan bir işlemin, ikinci bir onay mekanizmasına sokulmasıdır. İşlemi üreten POS/Banka, ürettiği işlem için bir kapama kaydı yollayamaz ise bu durum meydana gelir. Bu kapamayı neden yapamadığı ya da yollayamadığı uzun bir konu fakat aşağıdaki durumlardan biri olduğunda bu kapama işlemi gerçekleşmiş olur:

-Kartı POS’a takıldığında ve başarılı işlem slipi çıkmadan kasiyerin kartı POS’dan çıkarttığını düşünün. Siz de işlem onaylanmıyor diye alışverişten vazgeçtiniz. Bu işlem anında bankanızın internet şubesini kontrol ettiğinizde bu işlemin onaylandığını ve kart limitinizden düşdüğünü görürsünüz. Burada bu işlemin bir müddet sonra ortadan kaybolmasını sağlayan olay kapama kaydının gönderilmemesidir.

-Bir internet sitesinden bir alışverişi siteden kaynaklanan bir nedenden dolayı 2 defa yaptınız veya 2 defa işlemi onayladınız. Gene işlem anında bankanızın internet şubesini kontrol ettiğinizde 2 tane başarılı işlem görürsünüz. Bu işlemlerden birinin hesabınıza yansıması diğerinin ise bir müddet sonra ortadan kaybolması durumu kapama gönderilip gönderilmemesi ile ilgilidir.


Share/Bookmark

Ocak 2019 Dergi Paketi

Toplam Boyut 6.16 GB

https://turbobit.net/dx93dqim8ebl/Ocak2019Dergiler.WT.rar.html


Share/Bookmark