Anggota yang dihitung rata-rata Ssas-moving-average

Anggota yang dihitung rata-rata Ssas-moving-average

Infinite-yield-forex
Jpmorgan-trading-system
Opsi nilai tambah-nilai


Open-forex-account-uk Rynek-forex-godziny-otwarcia Berbagai pilihan strategi-trading Jual-opsi-pada-dividen-saham Mbfx-forex-system-v2 Option-trading-kotak

Kebanyakan orang sudah familiar dengan ungkapan, quotthis ini akan membunuh dua burung dengan satu stonequot. Jika tidak, fase mengacu pada pendekatan yang membahas dua tujuan dalam satu tindakan. (Sayangnya, ungkapan itu sendiri agak tidak menyenangkan, karena kebanyakan dari kita tidak ingin melempar batu pada hewan yang tidak berdosa) Hari ini saya akan membahas beberapa hal mendasar mengenai dua fitur hebat di SQL Server: indeks Columnstore (hanya tersedia di SQL Server Enterprise) dan SQL Query Store. Microsoft benar-benar menerapkan indeks Columnstore di SQL 2012 Enterprise, meskipun telah menyempurnakannya dalam dua rilis terakhir dari SQL Server. Microsoft memperkenalkan Query Store di SQL Server 2016. Jadi, apa saja fitur ini dan mengapa mereka penting Nah, saya punya demo yang akan mengenalkan kedua fitur tersebut dan menunjukkan bagaimana mereka dapat membantu kita. Sebelum saya melangkah lebih jauh, saya juga membahas fitur ini (dan fitur SQL 2016 lainnya) di artikel Majalah KODE saya tentang fitur baru SQL 2016. Sebagai pengantar dasar, indeks Columnstore dapat membantu mempercepat kueri yang memindai berdasarkan data dalam jumlah besar, dan Query Query melacak eksekusi query, rencana eksekusi, dan statistik runtime yang biasanya perlu Anda kumpulkan secara manual. Percayalah ketika saya mengatakannya, ini adalah fitur hebat. Untuk demo ini, saya akan menggunakan database demo Data Warehouse Microsoft Contoso. Ngomong ngomong, Contoso DW seperti kuota AdventureWorksquot yang sangat besar, dengan tabel berisi jutaan baris. (Tabel AdventureWorks terbesar berisi sekitar 100.000 baris paling banyak). Anda bisa mendownload database Contoso DW disini: microsoften-usdownloaddetails.aspxid18279. Contoso DW bekerja sangat baik saat Anda ingin menguji kinerja pada pertanyaan melawan tabel yang lebih besar. Contoso DW berisi tabel data warehouse standar yang disebut FactOnLineSales, dengan 12,6 juta baris. Itu tentu bukan tabel gudang data terbesar di dunia, tapi juga permainan anak-anak. Misalkan saya ingin meringkas jumlah penjualan produk untuk tahun 2009, dan memberi peringkat produk. Saya mungkin menanyakan tabel fakta dan bergabung ke tabel Dimensi Produk dan menggunakan fungsi RANK, seperti: Berikut adalah hasil parsial dari 10 baris teratas, oleh Total Sales. Di laptop saya (i7, 16 GB RAM), permintaan membutuhkan waktu 3-4 detik untuk dijalankan. Itu mungkin tidak tampak seperti akhir dunia, namun beberapa pengguna mungkin mengharapkan hasil hampir instan (seperti yang mungkin Anda lihat seketika saat menggunakan Excel dari kubus OLAP). Satu-satunya indeks yang saya miliki saat ini di tabel ini adalah indeks berkerumun pada kunci penjualan. Jika saya melihat rencana eksekusi, SQL Server membuat sebuah saran untuk menambahkan indeks penutup ke tabel: Sekarang, hanya karena SQL Server menyarankan sebuah indeks, tidak berarti Anda harus secara membabi buta membuat indeks pada setiap pesan kuota indeks kuota. Namun, dalam hal ini, SQL Server mendeteksi bahwa kita memfilter berdasarkan tahun, dan menggunakan Product Key dan Sales Amount. Jadi, SQL Server menyarankan indeks penutup, dengan DateKey sebagai bidang indeks kunci. Alasan kami menyebutnya indeks quotcoveringquot adalah karena SQL Server akan melakukan kuota sepanjang fieldquot non-key yang kami gunakan dalam query, quotfor the ridequot. Dengan cara itu, SQL Server tidak perlu menggunakan tabel atau indeks berkerumun di semua mesin database hanya dengan menggunakan indeks pengaitan untuk kueri. Meliputi indeks sangat populer di data pergudangan dan pelaporan database skenario tertentu, meskipun harganya terjangkau oleh mesin database. Catatan: Meliputi indeks telah ada sejak lama, jadi saya belum membuka indeks Columnstore dan Query Store. Jadi, saya akan menambahkan indeks penutupnya: Jika saya menjalankan kueri yang sama dengan saya, saya berlari beberapa saat yang lalu (yang mengumpulkan jumlah penjualan untuk setiap produk), kueri kadang tampaknya berjalan sekitar satu detik lebih cepat, dan saya mendapatkan Rencana eksekusi yang berbeda, yang menggunakan Indeks Seek dan bukan Index Scan (dengan menggunakan tombol tanggal pada indeks penutup untuk mengambil penjualan untuk tahun 2009). Jadi, sebelum Indeks Columnstore, ini bisa menjadi salah satu cara untuk mengoptimalkan kueri ini di banyak versi SQL Server yang lebih lama. Ini berjalan sedikit lebih cepat daripada yang pertama, dan saya mendapatkan rencana eksekusi dengan Index Seek daripada Index Scan. Namun, ada beberapa masalah: Dua operator eksekusi quotIndex Seekquot dan quotHash Match (Aggregate) mengutip keduanya pada dasarnya mengoperasikan quotrow oleh rowquot. Bayangkan ini dalam sebuah tabel dengan ratusan juta baris. Terkait, pikirkan isi tabel fakta: dalam kasus ini, satu nilai kunci tanggal dan atau satu nilai kunci produk dapat diulang di ratusan ribu baris (ingat, tabel fakta juga memiliki kunci untuk geografi, promosi, salesman , Dll.) Jadi, ketika quotIndex Seekquot dan quotHash Matchquot bekerja baris demi baris, mereka melakukannya atas nilai yang mungkin diulang di banyak baris lainnya. Ini biasanya terjadi di segelintir indeks SQL Server Columnstore, yang menawarkan skenario untuk meningkatkan kinerja kueri ini dengan cara yang menakjubkan. Tapi sebelum saya melakukannya, mari kita kembali ke masa lalu. Mari kembali ke tahun 2010, saat Microsoft memperkenalkan add-in untuk Excel yang dikenal sebagai PowerPivot. Banyak orang mungkin ingat melihat demo PowerPivot for Excel, di mana pengguna bisa membaca jutaan baris dari sumber data luar ke Excel. PowerPivot akan memampatkan data, dan menyediakan mesin untuk membuat Tabel Pivot dan Diagram Pivot yang tampil dengan kecepatan luar biasa terhadap data yang dikompres. PowerPivot menggunakan teknologi in-memory yang disebut Microsoft quotVertiPaqquot. Teknologi in-memory di PowerPivot pada dasarnya akan mengambil nilai kunci bisnis duplikat kunci utama dan memampatkannya ke satu vektor tunggal. Teknologi in-memory juga akan memilah-milah nilai-nilai ini secara paralel, dalam blok beberapa ratus sekaligus. Intinya adalah Microsoft memanggang sejumlah besar penyempurnaan kinerja ke dalam fitur memori VertiPaq yang bisa kita gunakan, langsung dari kotak pepatah. Mengapa saya mengambil jalan kecil ini menyusuri jalur memori Karena di SQL Server 2012, Microsoft menerapkan salah satu fitur terpenting dalam sejarah mesin database mereka: indeks Columnstore. Indeks benar-benar sebuah indeks hanya dalam nama: ini adalah cara untuk mengambil tabel SQL Server dan membuat kolom kolom terkompresi dalam memori yang memampatkan nilai kunci asing duplikat ke nilai vektor tunggal. Microsoft juga menciptakan kolam penyangga baru untuk membaca nilai vektor terkompresi ini secara paralel, menciptakan potensi peningkatan kinerja yang sangat besar. Jadi, saya akan membuat indeks kolom di atas meja, dan saya akan melihat seberapa jauh lebih baik (dan lebih efisien) kueri berjalan, versus kueri yang berjalan melawan indeks penutup. Jadi, saya akan membuat salinan duplikat FactOnlineSales (saya akan menamakannya FactOnlineSalesDetailNCCS), dan saya akan membuat indeks kolom di tabel duplikat sehingga saya tidak akan mengganggu tabel asli dan indeks penutupan dengan cara apa pun. Selanjutnya, saya akan membuat indeks kolom di tabel baru: Perhatikan beberapa hal: Saya telah menetapkan beberapa kolom kunci asing, serta Angka Penjualan. Ingatlah bahwa indeks kolom tidak seperti indeks toko-toko tradisional. Tidak ada quotkeyquot. Kami hanya menunjukkan kolom mana yang harus dikompres SQL Server dan ditempatkan di gudang data dalam memori. Untuk menggunakan analogi PowerPivot untuk Excel saat kita membuat indeks kolom, kita akan memberitahu SQL Server untuk melakukan hal yang sama seperti yang dilakukan PowerPivot saat kita mengimpor 20 juta baris ke Excel menggunakan PowerPivot Jadi, saya akan menjalankan kembali kueri, kali ini menggunakan Tabel factOnlineSalesDetailNCCS yang digandakan yang berisi indeks kolomstore. Permintaan ini berjalan seketika dalam waktu kurang dari satu detik. Dan saya juga bisa mengatakan bahwa meskipun tabel itu memiliki ratusan juta baris, buku itu tetap akan terbentang dari kutipan bulu mata yang pepatah. Kita bisa melihat rencana eksekusi (dan dalam beberapa saat, kita akan melakukannya), tapi sekarang saatnya meliput fitur Query Store. Bayangkan sejenak, bahwa kami menjalankan kedua pertanyaan semalam: kueri yang menggunakan tabel FactOnlineSales biasa (dengan indeks penutup) dan kemudian kueri yang menggunakan tabel duplikat dengan indeks Columnstore. Saat kita masuk keesokan paginya, kami ingin melihat rencana eksekusi untuk kedua pertanyaan saat mereka berlangsung, begitu pula dengan statistik eksekusi. Dengan kata lain, kami ingin melihat statistik yang sama bahwa kami dapat melihat apakah kami menjalankan kedua kueri secara interaktif di SQL Management Studio, menyerahkan TIME dan IO Statistics, dan melihat rencana eksekusi tepat setelah menjalankan kueri. Nah, itulah yang dilakukan oleh Toko Kueri agar kita dapat mengaktifkan (enable) Query Store untuk database, yang akan memicu SQL Server untuk menyimpan eksekusi query dan merencanakan statistik sehingga kita dapat melihatnya nanti. Jadi, saya akan mengaktifkan Query Store di database Contoso dengan perintah berikut (dan saya juga akan menghapus semua caching): Kemudian saya akan menjalankan dua query (dan quotpretendquot yang saya jalankan beberapa jam yang lalu): Sekarang mari kita berpura-pura berlari berjam-jam. Lalu. Menurut apa yang saya katakan, Query Store akan menangkap statistik eksekusi. Jadi bagaimana cara melihatnya Untungnya, itu cukup mudah. Jika saya memperluas basis data Contoso DW, saya akan melihat folder Query Store. Toko Kueri memiliki fungsionalitas yang luar biasa dan saya akan mencoba meliputnya dalam entri blog berikutnya. Tapi untuk saat ini, saya ingin melihat statistik eksekusi pada dua query, dan secara khusus memeriksa operator eksekusi untuk indeks kolomstore. Jadi, saya akan mengklik kanan pada Kuasa Mengonsumsi Sumber Daya Teratas dan menjalankan opsi itu. Itu memberi saya bagan seperti di bawah ini, di mana saya bisa melihat durasi eksekusi (dalam milidetik) untuk semua pertanyaan yang telah dieksekusi. Dalam contoh ini, Query 1 adalah query terhadap tabel asli dengan indeks penutup, dan Query 2 melawan tabel dengan indeks kolomstore. Angka tersebut tidak terletak pada indeks kolom kerja mengungguli indeks tablecovering asli dengan faktor hampir 7 banding 1. Saya dapat mengubah metrik untuk melihat konsumsi memori. Dalam kasus ini, perhatikan bahwa query 2 (query indeks kolomstore) menggunakan lebih banyak memori. Ini menunjukkan dengan jelas mengapa indeks columnstore mewakili teknologi kuotasi-memoriquot SQL Server memuat seluruh indeks kolom di memori, dan menggunakan kolam penyangga yang sama sekali berbeda dengan operator eksekusi yang ditingkatkan untuk memproses indeks. OK, jadi kita punya beberapa grafik untuk melihat statistik eksekusi kita bisa melihat rencana eksekusi (dan eksekusi operator) yang terkait dengan setiap eksekusi Ya, kita bisa Jika Anda klik pada baris vertikal untuk query yang menggunakan indeks kolomstore, Anda akan melihat eksekusi Rencanakan di bawah ini Hal pertama yang kita lihat adalah bahwa SQL Server melakukan pemindaian indeks kolom, dan itu mewakili hampir 100 dari biaya kueri. Anda mungkin berkata, quotWait sebentar, kueri pertama menggunakan indeks penutup dan melakukan pencarian indeks jadi bagaimana pemindaian indeks kolom bisa lebih cepat. Pertanyaan yang sah, dan untungnya ada sebuah jawaban. Bahkan ketika query pertama melakukan pencarian indeks, ia masih mengeksekusi quotrow oleh rowquot. Jika saya meletakkan mouse di atas operator pemindai indeks kolom, saya melihat tooltip (seperti yang ada di bawah), dengan satu pengaturan penting: Mode Eksekusi adalah BATCH (berlawanan dengan ROW), yaitu apa yang kami lakukan dengan kueri pertama yang menggunakan Meliputi indeks). Mode BATCH mengatakan bahwa SQL Server sedang memproses vektor terkompresi (untuk nilai kunci asing yang diduplikasi, seperti kunci produk dan kunci tanggal) dalam jumlah hampir 1.000, secara paralel. Jadi SQL Server masih bisa mengolah indeks columnstore jauh lebih efisien. Selain itu, jika saya menempatkan mouse di atas tugas Hash Match (Aggregate), saya juga melihat bahwa SQL Server mengumpulkan indeks kolom menggunakan mode Batch (walaupun operator itu sendiri mewakili persentase kecil dari biaya kueri) Akhirnya, Anda Mungkin bertanya, quotOK, jadi SQL Server memampatkan nilai dalam data, memperlakukan nilai sebagai vektor, dan membacanya di blok hampir seribu nilai secara paralel namun kueri saya hanya menginginkan data untuk tahun 2009. Begitu juga pemindaian SQL Server atas Seluruh rangkaian dataquot Sekali lagi, sebuah pertanyaan bagus. Jawabannya adalah, quotNot reallyquot. Untungnya bagi kami, pool buffer index kolom baru melakukan fungsi lain yang disebut quotmentment eliminationquot. Pada dasarnya, SQL Server akan memeriksa nilai vektor untuk kolom kunci tanggal di indeks kolomstore, dan menghilangkan segmen yang berada di luar cakupan tahun 2009. Saya akan berhenti di sini. Dalam posting blog berikutnya, saya akan membahas indeks kolom dan Query Store secara lebih rinci. Intinya, apa yang telah kita lihat di sini hari ini adalah bahwa indeks Columnstore secara signifikan dapat mempercepat kueri yang memindai berdasarkan data dalam jumlah besar, dan Toko Kueri akan menangkap eksekusi kueri dan memungkinkan kita memeriksa statistik eksekusi dan kinerja di lain waktu. Pada akhirnya, kami ingin menghasilkan kumpulan hasil yang menunjukkan hal berikut. Perhatikan tiga hal: Kolom dasarnya pivot semua Alasan Kembali yang mungkin, setelah menunjukkan jumlah penjualan Hasil set berisi subtotal oleh tanggal akhir minggu (minggu) di semua klien (di mana Klien adalah NULL) Kumpulan hasil berisi jumlah keseluruhan Baris (dimana Client dan Date keduanya NULL) Pertama, sebelum masuk ke akhir SQL kita bisa menggunakan kemampuan pivotmatrix dinamis di SSRS. Kita hanya perlu menggabungkan dua set hasil dengan satu kolom dan kemudian kita dapat memberi umpan hasilnya pada kontrol matriks SSRS, yang akan menyebarkan alasan pengembalian di sumbu kolom laporan. Namun, tidak semua orang menggunakan SSR (walaupun kebanyakan orang seharusnya). Tapi bahkan saat itu, terkadang pengembang perlu mengonsumsi set hasil dalam sesuatu selain alat pelaporan. Jadi, untuk contoh ini, mari kita asumsikan kami ingin menghasilkan hasil yang ditetapkan untuk halaman grid web dan mungkin pengembang ingin mengeluarkan kuota baris subtotal (di mana saya memiliki nilai ResultSetNum 2 dan 3) dan menempatkannya di kolom ringkasan. Jadi intinya, kita perlu menghasilkan output di atas secara langsung dari prosedur yang tersimpan. Dan sebagai twist tambahan minggu depan mungkin ada Return Reason X dan Y dan Z. Jadi kita tidak tahu berapa banyak alasan pengembalian yang ada. Kami ingin query sederhana untuk berpaling pada kemungkinan nilai yang berbeda untuk Return Reason. Inilah dimana T-SQL PIVOT memiliki batasan yang kita butuhkan untuk memberikan nilai yang mungkin. Karena kita tidak tahu bahwa sampai run-time, kita perlu menghasilkan string query secara dinamis dengan menggunakan pola SQL dinamis. Pola SQL dinamis melibatkan pembuatan sintaks, sepotong demi sepotong, menyimpannya dalam sebuah string, dan kemudian mengeksekusi string di akhir. Dynamic SQL bisa jadi rumit, karena kita harus menanamkan sintaks di dalam sebuah string. Tapi dalam kasus ini, ini satu-satunya pilihan sejati jika kita ingin menangani sejumlah alasan pengembalian. Saya selalu menemukan bahwa cara terbaik untuk menciptakan solusi SQL yang dinamis adalah dengan mencari tahu apa query yang dihasilkan oleh kuotaalquot pada akhirnya (dalam kasus ini, mengingat alasan Kembali yang kita ketahui). Dan kemudian membalik-ulangnya dengan memilah-milahnya Itu bersama satu bagian pada satu waktu. Jadi, inilah SQL yang kita butuhkan jika kita mengetahui Alasan Kembali tersebut (A sampai D) bersifat statis dan tidak akan berubah. Pertanyaannya adalah sebagai berikut: Menggabungkan data dari SalesData dengan data dari ReturnData, di mana kita quothard-wirequot kata Sales sebagai Tipe Aksi membentuk Tabel Penjualan, dan kemudian menggunakan Return Reason dari Return Data ke kolom ActionType yang sama. Itu akan memberi kita kolom ActionType yang bersih untuk diputar. Kami menggabungkan dua pernyataan SELECT ke dalam common table expression (CTE), yang pada dasarnya adalah subquery tabel turunan yang kemudian kami gunakan dalam pernyataan berikutnya (untuk PIVOT) Pernyataan PIVOT melawan CTE, yang menetapkan jumlah dolar untuk Tipe Aksi Berada di salah satu nilai Action Type yang mungkin. Perhatikan bahwa ini adalah hasil akhir yang ditetapkan. Kami menempatkan ini ke CTE yang berbunyi dari CTE pertama. Alasan untuk ini adalah karena kita ingin melakukan beberapa pengelompokan di akhir. Pernyataan SELECT terakhir, yang terbaca dari PIVOTCTE, dan menggabungkannya dengan query berikutnya melawan PIVOTCTE yang sama, namun di mana kita juga menerapkan dua pengelompokan dalam fitur PENGATURAN SETELAH DI SQL 2008: MENGELOMPOKAN pada Tanggal Akhir Minggu (dbo.WeekEndingDate) PENGELOMPOKAN untuk semua baris () Jadi, jika kita tahu dengan pasti bahwa kita tidak akan pernah memiliki kode alasan pengembalian yang lebih banyak, maka itu akan menjadi solusinya. Namun, kita perlu memperhitungkan kode alasan lainnya. Jadi, kita perlu menghasilkan keseluruhan kueri di atas sebagai satu string besar di mana kita membuat kemungkinan alasan pengembalian sebagai satu daftar dipisahkan koma. Aku akan menunjukkan seluruh kode T-SQL untuk menghasilkan (dan mengeksekusi) kueri yang diinginkan. Dan kemudian aku akan memecahnya menjadi beberapa bagian dan menjelaskan setiap langkahnya. Jadi pertama, inilah keseluruhan kode untuk menghasilkan secara dinamis apa yang telah saya hadapi di atas. Pada dasarnya ada lima langkah yang perlu kita liput. Langkah 1 . Kita tahu bahwa di suatu tempat dalam campuran, kita perlu menghasilkan sebuah string untuk ini dalam query: SalesAmount, Reason A, Reason B, Reason C, Reason D0160016001600160 Apa yang dapat kita lakukan adalah membangun sebuah ekspresi tabel umum sementara yang menggabungkan kutipan kabel keras. Kolom Amountquot dengan daftar kode kemungkinan yang unik. Begitu kita memilikinya di CTE, kita bisa menggunakan sedikit trik bagus untuk XML PATH (3939) untuk menghancurkan baris tersebut menjadi satu string, meletakkan koma di depan setiap baris yang dibaca query, dan kemudian menggunakan STUFF untuk mengganti Contoh koma pertama dengan ruang kosong. Ini adalah trik yang bisa Anda temukan di ratusan blog SQL. Jadi bagian pertama ini membangun sebuah string yang disebut ActionString yang bisa kita gunakan lebih bawah. Langkah 2 . Kami juga tahu bahwa kami ingin SUM kolom alasan dihasilkanproduce, bersama dengan kolom penjualan standar. Jadi kita butuh string terpisah untuk itu, yang akan saya sebut SUMSTRING. Saya hanya akan menggunakan ActionString yang asli, dan kemudian MENGGANTI kurung luar dengan sintaks SUM, ditambah tanda kurung asli. Langkah 3: Sekarang pekerjaan sebenarnya dimulai. Dengan menggunakan kueri asli sebagai model, kami ingin menghasilkan kueri asli (dimulai dengan UNION dari dua tabel), namun mengganti referensi ke kolom berporos dengan string yang kami buat secara dinamis di atas. Selain itu, meski tidak mutlak diperlukan, saya juga menciptakan variabel hanya kombinasi umpan balik jalur kereta yang ingin kami embed ke kueri yang dihasilkan (untuk keterbacaan). Jadi kita akan membangun seluruh query menjadi variabel yang disebut SQLPivotQuery. Langkah 4. Kami terus membangun kueri lagi, menggabungkan sintaks kami dapat kuotot-wirequot dengan ActionSelectString (yang kami buat secara dinamis untuk menyimpan semua nilai alasan pengembalian yang mungkin) Langkah 5. Akhirnya, kami akan menghasilkan bagian terakhir dari Query Pivot, yang terbaca dari persamaan tabel umum 2 (PIVOTCTE, dari model di atas) dan menghasilkan SELECT akhir untuk dibaca dari PIVOTCTE dan menggabungkannya dengan pembacaan 2 terhadap PIVOTCTE ke Menerapkan pengelompokan. Akhirnya, kita bisa quotexecutequot string menggunakan sistem SQL yang tersimpan proc spexecuteSQL Jadi mudah-mudahan Anda dapat melihat bahwa proses untuk mengikuti jenis usaha ini adalah Menentukan apa permintaan akhir, berdasarkan pada kumpulan data dan nilai Anda saat ini (yaitu dibangun Model kueri) Tuliskan kode T-SQL yang diperlukan untuk menghasilkan model kueri tersebut sebagai string. Arguably bagian yang paling penting adalah menentukan seperangkat nilai unik yang menjadi andalan Anda, dan kemudian menghancurkannya menjadi satu string dengan menggunakan fungsi STUFF dan trik FOR XML PATH (3939) Jadi, apa yang ada di pikiran saya hari ini. Setidaknya 13 item Dua Musim panas yang lalu, saya menulis draf BDR yang memusatkan perhatian pada peran pendidikan dan nilai latar belakang seni liberal yang baik tidak hanya untuk industri perangkat lunak tapi juga untuk industri lain. Salah satu tema BDR ini menekankan sudut pandang penting dan tercerahkan dari arsitek perangkat lunak terkenal Allen Holub mengenai seni liberal. Ill (dengan setia) menguraikan pesannya: dia menyoroti kesejajaran antara pemrograman dan mempelajari sejarah, dengan mengingatkan semua orang bahwa sejarah sedang membaca dan menulis (dan Ill menambahkan, mengidentifikasi pola), dan pengembangan perangkat lunak juga membaca dan menulis (dan sekali lagi, mengidentifikasi pola ). Maka saya menulis sebuah opini yang berfokus pada topik ini dan topik terkait lainnya. Tapi sampai hari ini, saya tidak pernah sempat mempublikasikannya. Sering sekali Id memikirkan untuk merevisinya, dan Id bahkan duduk selama beberapa menit dan membuat beberapa penyesuaian untuk itu. Tapi kemudian kehidupan pada umumnya akan menghalangi dan Id tidak pernah menyelesaikannya. Jadi, apa yang berubah Beberapa minggu yang lalu, kolumnis CoDe Magazine dan pemimpin industri Ted Neward menulis sebuah artikel di kolom regulernya, Managed Coder, yang menarik perhatian saya. Judul artikelnya adalah On Liberal Arts. Dan saya sangat menyarankan agar semua orang membacanya. Ted membahas nilai latar belakang seni liberal, dikotomi palsu antara latar belakang seni liberal dan kesuksesan dalam pengembangan perangkat lunak, dan kebutuhan untuk menulis dengan baik. Dia berbicara tentang beberapa pertemuan masa lalunya dengan manajemen personalia HR mengenai latar belakang pendidikannya. Dia juga menekankan perlunya menerima dan menyesuaikan diri dengan perubahan dalam industri kami, sekaligus keunggulan profesional perangkat lunak yang sukses (dapat diandalkan, merencanakan ke depan, dan belajar untuk melewati konflik awal dengan anggota tim lainnya). Jadi bacaannya yang bagus, seperti juga artikel artikel dan blog Tested lainnya. Hal itu juga membuat saya kembali memikirkan pandangan saya tentang topik ini (dan topik lainnya) juga, dan akhirnya memotivasi saya untuk menyelesaikan editorial saya sendiri. Jadi, lebih baik terlambat daripada tidak pernah, inilah Bakers Dozen of Reflections saya saat ini: Saya memiliki pepatah: Air membeku pada suhu 32 derajat. Jika Anda dalam peran pelatihan, Anda mungkin berpikir bahwa Anda melakukan segala sesuatu di dunia untuk membantu seseorang padahal sebenarnya mereka hanya merasakan suhu 34 derajat dan karena itu hal-hal yang menghambat pemadaman untuk mereka. Terkadang dibutuhkan sedikit usaha atau katalis ideacimia lain atau perspektif baru yang berarti bahwa mereka yang memiliki pendidikan sebelumnya dapat memanfaatkan sumber yang berbeda. Air membeku pada suhu 32 derajat. Beberapa orang bisa mempertahankan konsentrasi tinggi meski ruangannya penuh dengan orang yang berisik. Saya tidak salah satu dari mereka kadang-kadang saya memerlukan beberapa privasi untuk memikirkan masalah kritis. Beberapa orang menggambarkan hal ini karena Anda harus belajar untuk menjauh darinya. Dengan kata lain, pencariannya untuk udara yang langka. Seminggu yang lalu aku menghabiskan berjam-jam di ruang sepi dan sepi dengan papan tulis, sampai aku benar-benar mengerti sebuah masalah. Baru pada saat itulah saya bisa berbicara dengan pengembang lain tentang sebuah solusi. Pesan di sini bukan untuk mengkhotbahkan bagaimana Anda harus membicarakan bisnis Anda untuk memecahkan masalah, tetapi bagi setiap orang untuk mengetahui kekuatan dan apa yang berhasil, dan menggunakannya untuk keuntungan Anda sebanyak mungkin. Beberapa ungkapan seperti kuku di papan tulis untukku. Gunakan sebagai momen mengajar adalah satu. (Mengapa seperti kuku di papan tulis Karena jika Anda memiliki peran mentoring, biasanya Anda harus selalu mengikuti mode penglihatan, betapapun halusnya). Heres lain saya cant benar-benar menjelaskannya dengan kata-kata, tapi saya mengerti. Ini mungkin terdengar agak dingin, tapi jika seseorang benar-benar tidak dapat menjelaskan sesuatu dengan kata-kata, mungkin mereka tidak mengerti. Tentu, seseorang dapat memiliki perasaan tidak masuk akal tentang bagaimana sesuatu bekerja. Saya bisa menggertak dengan cara saya menjelaskan bagaimana sebuah karya kamera digital namun kenyataannya saya tidak benar-benar mengerti semuanya dengan baik. Ada bidang studi yang dikenal sebagai epistemologi (studi tentang pengetahuan). Salah satu dasar dasar untuk memahami apakah itu kamera atau pola desain - adalah kemampuan untuk membangun konteks, untuk mengidentifikasi rangkaian kejadian terkait, atribut dari setiap komponen di sepanjang jalan, dll. Ya, pemahaman terkadang sangat kerja keras. , Tapi menyelam ke topik dan memecahnya sepadan dengan usaha. Bahkan mereka yang menjauhkan diri dari sertifikasi akan mengakui bahwa proses belajar untuk tes sertifikasi akan membantu mengisi kesenjangan dalam pengetahuan. Seorang manajer database lebih cenderung mempekerjakan pengembang database yang dapat berbicara secara lantang (dan tanpa susah payah) tentang tingkat isolasi transaksi dan pemicu, berlawanan dengan seseorang yang semacam tahu tentang hal itu namun berjuang untuk mendeskripsikan penggunaannya. Ada konsekuensi lain di sini. Ted Neward merekomendasikan agar pengembang berbicara di depan umum, ngeblog, dan lain-lain. Saya setuju 100. Proses berbicara dan ngomong secara praktis akan memaksa Anda untuk mulai memikirkan topik dan memecah definisi yang mungkin Anda anggap remeh. Beberapa tahun yang lalu saya pikir saya mengerti pernyataan T-SQL MERGE dengan cukup baik. Tapi hanya setelah menulis tentang hal itu, berbicara tentang, mengajukan pertanyaan dari orang lain yang memiliki perspektif yang tidak pernah terpikir oleh saya bahwa tingkat pemahaman saya meningkat secara eksponensial. Saya tahu sebuah cerita tentang seorang manajer perekrutan yang pernah mewawancarai seorang pengembang authord untuk posisi kontrak. Manajer perekrutan itu membenci publikasi secara umum, dan menyalak pada pemohon, Jadi, jika Anda akan bekerja di sini, lebih baik Anda menulis buku atau menulis kode Ya, saya akan memberikan bahwa di industri mana pun akan ada beberapa akademisi murni. Tapi apa yang dilewatkan manajer perekrutan adalah kesempatan untuk memperkuat dan mengasah ketrampilan. Sambil membersihkan kotak buku lama, saya menemukan sebuah harta dari tahun 1980an: Programmer at Work. Yang berisi wawancara dengan Bill Gates yang sangat muda, Ray Ozzie, dan nama-nama terkenal lainnya. Setiap wawancara dan setiap wawasan berharga sesuai dengan harga buku. Menurut saya, wawancara yang paling menarik adalah dengan Butler Lampson. Yang memberikan beberapa saran kuat. Persetan dengan melek komputer. Benar-benar konyol Belajar matematika Belajar berpikir Baca baca. Menulis. Hal-hal ini lebih berharga. Pelajari bagaimana membuktikan teorema: Banyak bukti telah terakumulasi selama berabad-abad yang menunjukkan keterampilan ini dapat dipindahtangankan ke banyak hal lainnya. Butler mengatakan yang sebenarnya. Saya menambahkan pada saat itu bagaimana cara bermain setan menganjurkan diri Anda. Semakin Anda bisa realita-memeriksa proses dan pekerjaan Anda sendiri, semakin baik Anda. Ilmuwan ilmuwan komputer hebat Allen Holub membuat hubungan antara pengembangan perangkat lunak dan seni liberal secara khusus, subjek sejarah. Inilah intinya: apa itu sejarah Membaca dan menulis. Apa itu pengembangan perangkat lunak Antara lain, membaca dan menulis. Dulu saya memberi siswa saya pertanyaan esai T-SQL sebagai tes latihan. Seorang siswa bercanda bahwa saya bertindak lebih seperti profesor hukum. Nah, seperti kata Pelatih Donny Haskins di film Glory Road, jalan saya sulit. Saya sangat percaya pada landasan intelektual yang kuat untuk profesi apapun. Sama seperti aplikasi bisa mendapatkan keuntungan dari kerangka kerja, individu dan proses berpikir mereka bisa mendapatkan keuntungan dari kerangka kerja manusia juga. Itulah dasar dasar beasiswa. Ada sebuah cerita yang kembali di tahun 1970an, IBM memperluas usaha rekrutmen mereka di universitas-universitas besar dengan memusatkan perhatian pada lulusan seni liberal terbaik dan tercerdas. Bahkan kemudian mereka menyadari bahwa pembaca dan penulis terbaik suatu hari nanti bisa menjadi analis programer sistem yang kuat. (Jangan ragu untuk menggunakan cerita itu ke tipe HR mana pun yang menegaskan bahwa seorang kandidat harus memiliki gelar sains komputer) Dan berbicara tentang sejarah: jika tidak ada alasan lain, penting untuk mengingat sejarah peluncuran produk jika saya melakukan pekerjaan di sebuah Situs klien yang masih menggunakan SQL Server 2008 atau bahkan (terkesiap) SQL Server 2005, saya harus mengingat fitur apa yang diimplementasikan dalam versi tersebut dari waktu ke waktu. Pernah memiliki dokter favorit yang Anda sukai karena heshe menjelaskan hal-hal dalam bahasa Inggris, memberi Anda kebenaran langsung, dan mendapatkan kepercayaan Anda untuk beroperasi pada Anda Mereka adalah keterampilan gila. Dan merupakan hasil pengalaman dan KERJA KERAS yang membutuhkan waktu bertahun-tahun dan bahkan berpuluh-puluh tahun untuk berkultivasi. Tidak ada jaminan keberhasilan pekerjaan dalam fokus pada fakta, ambil beberapa risiko yang dihitung saat Anda yakin bisa melihat jalan ke garis finish, biarkan keripik jatuh di mana mereka berada, dan jangan pernah kehilangan pandangan sama seperti dokter yang memperolehnya. Kepercayaan anda Meskipun beberapa hari saya gagal, saya mencoba memperlakukan klien saya dan data mereka sebagai dokter akan merawat pasien. Meskipun seorang dokter menghasilkan lebih banyak uang Ada banyak klise yang saya benci tapi juga yang saya benci: Tidak ada yang namanya pertanyaan buruk. Sebagai mantan instruktur, satu hal yang menarik kemarahan saya adalah mendengar seseorang mengkritik orang lain karena mengajukan pertanyaan yang konyol dan bodoh. Sebuah pertanyaan menunjukkan seseorang mengakui bahwa mereka memiliki beberapa kesenjangan dalam pengetahuan yang ingin mereka isi. Ya, beberapa pertanyaan lebih baik daripada yang lain, dan beberapa pertanyaan memerlukan pembingkaian tambahan sebelum bisa dijawab. Tapi perjalanan dari membentuk sebuah pertanyaan ke sebuah jawaban kemungkinan akan menghasilkan proses mental yang aktif pada orang lain. Ada banyak hal yang baik. Banyak diskusi bagus dan bermanfaat berasal dari pertanyaan bodoh. Saya bekerja di seluruh papan di SSIS, SSAS, SSR, MDX, PPS, SharePoint, Power BI, DAX semua alat di tumpukan Microsoft BI. Saya masih menulis beberapa kode dari waktu ke waktu. Tapi tebak apa yang saya masih menghabiskan begitu banyak waktu untuk menulis kode T-SQL ke data profil sebagai bagian dari proses penemuan. Semua pengembang aplikasi harus memiliki daging T-SQL yang baik. Ted Neward menulis (benar) tentang kebutuhan untuk beradaptasi dengan perubahan teknologi. Saya menambahkan bahwa kebutuhan untuk menyesuaikan diri dengan perubahan pengusaha. Perusahaan mengubah peraturan bisnis. Perusahaan mengakuisisi perusahaan lain (atau menjadi target akuisisi). Perusahaan melakukan kesalahan dalam mengkomunikasikan kebutuhan dan spesifikasi bisnis. Ya, terkadang kita berperan dalam membantu mengelola perubahan tersebut dan terkadang terbang, bukan kaca depan. Ini terkadang menimbulkan rasa sakit yang luar biasa bagi semua orang, terutama I.T. orang-orang. Inilah sebabnya mengapa istilah kehidupan ada kita harus menghadapinya. Sama seperti tidak ada pengembang yang menulis kode bug bebas setiap saat, tidak ada I.T. Orang berurusan dengan baik dengan perubahan setiap saat. Salah satu perjuangan terbesar yang saya miliki dalam 28 tahun saya di industri ini menunjukkan kesabaran dan pengekangan saat perubahan terbang dari berbagai arah. Di sinilah saran saya sebelumnya tentang mencari udara yang bisa diperjelas bisa membantu. Jika Anda dapat mengatur untuk mengasimilasi perubahan ke dalam proses berpikir Anda, dan tanpa merasa terbebani, kemungkinan besar Anda akan menjadi aset yang signifikan. Dalam 15 bulan terakhir saya harus berurusan dengan sejumlah besar perubahan profesional. Sudah sangat sulit, tapi saya telah memutuskan bahwa perubahan itu akan menjadi norma dan saya mencoba meniru kebiasaan saya sebaik mungkin untuk mengatasi perubahan yang sering (dan tidak pasti). Its keras, sangat keras. Tapi seperti yang dikatakan pelatih Jimmy Duggan di film A League of Their Own: Tentu saja susah. Jika tidak sulit, semua orang akan melakukannya. Yang keras, inilah yang membuatnya hebat. Pesan yang kuat Pernah ada pembicaraan di industri ini selama beberapa tahun terakhir tentang perilaku di konferensi profesional (dan berperilaku di industri secara keseluruhan). Banyak penulis yang terhormat telah menulis editorial yang sangat bagus mengenai topik ini. Inilah masukan saya, untuk apa nilainya. Its a message to those individuals who have chosen to behave badly: Dude, it shouldnt be that hard to behave like an adult.A few years ago, CoDe Magazine Chief Editor Rod Paddock made some great points in an editorial about Codes of Conduct at conferences. Its definitely unfortunate to have to remind people of what they should expect out of themselves. But the problems go deeper. A few years ago I sat on a five-person panel (3 women, 2 men) at a community event on Women in Technology. The other male stated that men succeed in this industry because the Y chromosome gives men an advantage in areas of performance. The individual who made these remarks is a highly respected technology expert, and not some bozo making dongle remarks at a conference or sponsoring a programming contest where first prize is a date with a bikini model. Our world is becoming increasingly polarized (just watch the news for five minutes), sadly with emotion often winning over reason. Even in our industry, recently I heard someone in a position of responsibility bash software tool XYZ based on a ridiculous premise and then give false praise to a competing tool. So many opinions, so many arguments, but heres the key: before taking a stand, do your homework and get the facts . Sometimes both sides are partly rightor wrong. Theres only one way to determine: get the facts. As Robert Heinlein wrote, Facts are your single clue get the facts Of course, once you get the facts, the next step is to express them in a meaningful and even compelling way. Theres nothing wrong with using some emotion in an intellectual debate but it IS wrong to replace an intellectual debate with emotion and false agenda. A while back I faced resistance to SQL Server Analysis Services from someone who claimed the tool couldnt do feature XYZ. The specifics of XYZ dont matter here. I spent about two hours that evening working up a demo to cogently demonstrate the original claim was false. In that example, it worked. I cant swear it will always work, but to me thats the only way. Im old enough to remember life at a teen in the 1970s. Back then, when a person lost hisher job, (often) it was because the person just wasnt cutting the mustard. Fast-forward to today: a sad fact of life is that even talented people are now losing their jobs because of the changing economic conditions. Theres never a full-proof method for immunity, but now more than ever its critical to provide a high level of what I call the Three Vs (value, versatility, and velocity) for your employerclients. I might not always like working weekends or very late at night to do the proverbial work of two people but then I remember there are folks out there who would give anything to be working at 1 AM at night to feed their families and pay their bills. Always be yourselfyour BEST self. Some people need inspiration from time to time. Heres mine: the great sports movie, Glory Road. If youve never watched it, and even if youre not a sports fan I can almost guarantee youll be moved like never before. And Ill close with this. If you need some major motivation, Ill refer to a story from 2006. Jason McElwain, a high school student with autism, came off the bench to score twenty points in a high school basketball game in Rochester New York. Heres a great YouTube video. His mother said it all . This is the first moment Jason has ever succeeded and is proud of himself. I look at autism as the Berlin Wall. He cracked it. To anyone who wanted to attend my session at todays SQL Saturday event in DC I apologize that the session had to be cancelled. I hate to make excuses, but a combination of getting back late from Detroit (client trip), a car thats dead (blown head gasket), and some sudden health issues with my wife have made it impossible for me to attend. Back in August, I did the same session (ColumnStore Index) for PASS as a webinar. You can go to this link to access the video (itll be streamed, as all PASS videos are streamed) The link does require that you fill out your name and email address, but thats it. And then you can watch the video. Feel free to contact me if you have questions, at kgoffkevinsgoff November 15, 2013 Getting started with Windows Azure and creating SQL Databases in the cloud can be a bit daunting, especially if youve never tried out any of Microsofts cloud offerings. Fortunately, Ive created a webcast to help people get started. This is an absolute beginners guide to creating SQL Databases under Windows Azure. It assumes zero prior knowledge of Azure. You can go to the BDBI Webcasts of this website and check out my webcast (dated 11102013). Or you can just download the webcast videos right here: here is part 1 and here is part 2. You can also download the slide deck here. November 03, 2013 Topic this week: SQL Server Snapshot Isolation Levels, added in SQL Server 2005. To this day, there are still many SQL developers, many good SQL developers who either arent aware of this feature, or havent had time to look at it. Hopefully this information will help. Companion webcast will be uploaded in the next day look for it in the BDBI Webcasts section of this blog. October 26, 2013 Im going to start a weekly post of T-SQL tips, covering many different versions of SQL Server over the years Heres a challenge many developers face. Ill whittle it down to a very simple example, but one where the pattern applies to many situations. Suppose you have a stored procedure that receives a single vendor ID and updates the freight for all orders with that vendor id. create procedure dbo. UpdateVendorOrders update Purchasing. PurchaseOrderHeader set Freight Freight 1 where VendorID VendorID Now, suppose we need to run this for a set of vendor IDs. Today we might run it for three vendors, tomorrow for five vendors, the next day for 100 vendors. We want to pass in the vendor IDs. If youve worked with SQL Server, you can probably guess where Im going with this. The big question is how do we pass a variable number of Vendor IDs Or, stated more generally, how do we pass an array, or a table of keys, to a procedure Something along the lines of exec dbo. UpdateVendorOrders SomeListOfVendors Over the years, developers have come up with different methods: Going all the way back to SQL Server 2000, developers might create a comma-separated list of vendor keys, and pass the CSV list as a varchar to the procedure. The procedure would shred the CSV varchar variable into a table variable and then join the PurchaseOrderHeader table to that table variable (to update the Freight for just those vendors in the table). I wrote about this in CoDe Magazine back in early 2005 (code-magazinearticleprint.aspxquickid0503071ampprintmodetrue. Tip 3) In SQL Server 2005, you could actually create an XML string of the vendor IDs, pass the XML string to the procedure, and then use XQUERY to shred the XML as a table variable. I also wrote about this in CoDe Magazine back in 2007 (code-magazinearticleprint.aspxquickid0703041ampprintmodetrue. Tip 12)Also, some developers will populate a temp table ahead of time, and then reference the temp table inside the procedure. All of these certainly work, and developers have had to use these techniques before because for years there was NO WAY to directly pass a table to a SQL Server stored procedure. Until SQL Server 2008 when Microsoft implemented the table type. This FINALLY allowed developers to pass an actual table of rows to a stored procedure. Now, it does require a few steps. We cant just pass any old table to a procedure. It has to be a pre-defined type (a template). So lets suppose we always want to pass a set of integer keys to different procedures. One day it might be a list of vendor keys. Next day it might be a list of customer keys. So we can create a generic table type of keys, one that can be instantiated for customer keys, vendor keys, etc. CREATE TYPE IntKeysTT AS TABLE ( IntKey int NOT NULL ) So Ive created a Table Typecalled IntKeysTT . Its defined to have one column an IntKey. Nowsuppose I want to load it with Vendors who have a Credit Rating of 1..and then take that list of Vendor keys and pass it to a procedure: DECLARE VendorList IntKeysTT INSERT INTO VendorList SELECT BusinessEntityID from Purchasing. Vendor WHERE CreditRating 1 So, I now have a table type variable not just any table variable, but a table type variable (that I populated the same way I would populate a normal table variable). Its in server memory (unless it needs to spill to tempDB) and is therefore private to the connectionprocess. OK, can I pass it to the stored procedure now Well, not yet we need to modify the procedure to receive a table type. Heres the code: create procedure dbo. UpdateVendorOrdersFromTT IntKeysTT IntKeysTT READONLY update Purchasing. PurchaseOrderHeader set Freight Freight 1 FROM Purchasing. PurchaseOrderHeader JOIN IntKeysTT TempVendorList ON PurchaseOrderHeader. VendorID Te mpVendorList. IntKey Notice how the procedure receives the IntKeysTT table type as a Table Type (again, not just a regular table, but a table type). It also receives it as a READONLY parameter. You CANNOT modify the contents of this table type inside the procedure. Usually you wont want to you simply want to read from it. Well, now you can reference the table type as a parameter and then utilize it in the JOIN statement, as you would any other table variable. Jadi begitulah. A bit of work to set up the table type, but in my view, definitely worth it. Additionally, if you pass values from , youre in luck. You can pass an ADO data table (with the same tablename property as the name of the Table Type) to the procedure. For developers who have had to pass CSV lists, XML strings, etc. to a procedure in the past, this is a huge benefit. Finally I want to talk about another approach people have used over the years.SQL Server Cursors. At the risk of sounding dogmatic, I strongly advise against Cursors, unless there is just no other way. Cursors are expensive operations in the server, For instance, someone might use a cursor approach and implement the solution this way: DECLARE VendorID int DECLARE dbcursor CURSOR FASTFORWARD FOR SELECT BusinessEntityID from Purchasing. Vendor where CreditRating 1 FETCH NEXT FROM dbcursor INTO VendorID WHILE FETCHSTATUS 0 EXEC dbo. UpdateVendorOrders VendorID FETCH NEXT FROM dbcursor INTO VendorID The best thing Ill say about this is that it works. And yes, getting something to work is a milestone. But getting something to work and getting something to work acceptably are two different things. Even if this process only takes 5-10 seconds to run, in those 5-10 seconds the cursor utilizes SQL Server resources quite heavily. Thats not a good idea in a large production environment. Additionally, the more the of rows in the cursor to fetch and the more the number of executions of the procedure, the slower it will be. When I ran both processes (the cursor approach and then the table type approach) against a small sampling of vendors (5 vendors), the processing times where 260 ms and 60 ms, respectively. So the table type approach was roughly 4 times faster. But then when I ran the 2 scenarios against a much larger of vendors (84 vendors), the different was staggering 6701 ms versus 207 ms, respectively. So the table type approach was roughly 32 times faster. Again, the CURSOR approach is definitely the least attractive approach. Even in SQL Server 2005, it would have been better to create a CSV list or an XML string (providing the number of keys could be stored in a scalar variable). But now that there is a Table Type feature in SQL Server 2008, you can achieve the objective with a feature thats more closely modeled to the way developers are thinking specifically, how do we pass a table to a procedure Now we have an answer Hope you find this feature help. Feel free to post a comment.Earn the CST Diploma Part-time The Computer Systems Technology (CST) Diploma has provided thousands of career-ready graduates to all IT sectors across Canada. BCIT Computing offers two separate pathways to the CST Diploma, full-time or part-time course-by-course. Intensive full time delivery is two years, or part-time is typically completed by taking two courses per term over a period of six years. Some students may be able to complete three courses per term, however they will need to have a plan approved by the program head. The CSTPTS Diploma starts with a solid foundation of programming and systems development via a series of smaller modular credentials. 1) The first step is to complete Applied Software Development (ASD). It is extremely important that students demonstrate their ability to write code in multiple programming languages at the beginning of this series. 2) The second step is Applied Computer Information Systems (ACIS). Some students may attempt the ASD and ACIS simultaneously. After learning to write code, students then cover operating systems, database, web and English communication. 3) ASD and ACIS are subsets of the Computer Systems Certificate (CSC). which must be completed prior to starting the CSTPTS Diploma. The CSC is equivalent to the first year of the full-time CST Diploma in programming, web, database, math, architecture and technical writing. 4) Built on top of the CSC, the CSTPTS Diploma students cover data communications, advanced operating systems, network design, administration and security. There are nine core courses and seven to ten elective courses needed to complete the 60 unique credits on top of the 60 credits in the CSC. Core requirements include advanced object oriented analysis, algorithm design plus Internet law. Elective courses include advanced software application development, web and mobile, advanced database, analytics and business intelligence. Students who complete the CST Diploma either full-time or part-time may then apply for the Computer Systems Bachelors Degree. CST BTech. CST Diploma graduates from BCIT Computing are highly regarded by industry and have a major competitive advantage. Program Entry Costs amp Supplies Internet and IT Law This hands on course is aimed at BCIT Computing and Business students who want to learn not only about the laws and regulations that apply to the Internet and information technology, but also how to engage intellectual property rights, law and regulation to protect intellectual effort. Topics include privacy, private data collection, property (IPDRM), security, gambling, ethics, the internet of thingseverything (IoT), data, patents, trademarks, domain names, copyright, linking, meta-tags, online contracts, online advertising and marketing. Students receive an overview of law in the modern marketplace, which we practice applying online in a series of non-cumulative exercises, a role play exercise and in discussions. IT Project Management This hands-on course is aimed at BCIT Computing students who want to learn how to develop and implement an IT project plan. Project Management best practices and decisions apply across various IT sectors including: Web and Software Development, Databases and Networking. Topics include: identifying project stakeholders and defining roles and responsibilities of the team, defining scope, devising risks and quality plans, mapping-out a schedule, determining a budget and defining a communication strategy. Participants are introduced to the Microsoft Project software application. Students receive an overview of common project management concepts which they can apply to real world IT projects on time and on budget. Prerequisite: COMP 1002 or equivalent knowledge of a Windows PC, and file management. XML for Web Development XML is a standard for structuring, and storing web information. This course is focused on XML for Web Development for those with an HTML and CSS background. Following on from COMP 1850 this hands-on course will introduce students to Extensible Markup Language (XML). Participants will learn how XML is used within the web and how to integrate XML formats into web page development. Topics include XML syntax, DTD validation, namespaces, XML data modeling, and performing transformations with XSLT and XPath. Upon successful completion of this course, students will have an understanding of the basics of XML for web development and be prepared to move on to more advanced XML courses. Prerequisite: COMP 1850 or equivalent knowledge of HTML5, and CSS3. C Application Development 2 This hands-on intermediate level course assumes students have completed COMP 2617 C Application Development Part 1 with a minimum of 60. Students immediately move into more advanced C11 features. Topics include: operator overloading template classes exception handling the string class and stream processing the Standard Template Library file processing and namespaces. Additional miscellaneous advanced C topics will also be covered. Delivery is face-to face for 3 hours each week plus an online and homework component. Typical students will require about 10 hours per week to study the material and work on assignments outside of class. Upon successful completion, participants will be able to write, test and debug C programs to industry standards and be able to develop significant software applications. Prerequisite: COMP 2617 completion with 60 or better. Applied IT Security Fundamentals IT security is growing area with several domains including both information security and network security. This course replaces COMP 3705 which covered both information security and network security. COMP 3704 will provide a more in depth overview of key topics in information security only and is one of the prerequisites for COMP 4704 Applied Network Security. IT professionals across multiple sectors from software development, database, web, mobile and networks will benefit from the material covered. This hands-on course is led by local industry experts who will share their knowledge and best practices for securing computer systems. Students will complete labs and exercises to experience applied IT security and gain a practical knowledge. Topics will include: security awareness, risk mitigation and control administration, data and application security, cryptography, attack techniques, penetration testing, vulnerability assessment, incident response, disaster recovery, and forensic analysis. In addition, information handling best practices, privacy and regulatory issues are discussed. Upon completion of this course, successful participants will be aware of best practices in IT security and how to implement secure information systems. Network related aspects of IT security are covered in the follow-on course, COMP 4704 ldquoApplied Network Securityquot. Prerequisite: COMP 1002 or equivalent knowledge. Data Communications for CST Following on from COMP 2825 Computer Architecture, students are introduced to the basic concepts and terminology related to data communications, networking and network topologies. COMP 3725 replaces COMP 3721 in the CSTPTS Diploma and is equivalent to the full-time CST Diploma course. Students will learn about the TCPIP protocol suite and the principles of protocols at the physical, data link, network and transport layers, the characteristics of transmission media, analogdigital transmission, multiplexingswitching techniques, basic error detection and correction, elementary data link protocols, flow control and an introduction to routing and congestion control issues. Multiple access protocols, the UDP and TCP protocols, networking and internetworking devices, LANs and WANs will also be discussed. The course has a strong emphasis on data communications at the physical layer and the assignments will reinforce the fundamental concepts and analysis techniques. Upon successful completion, students will be familiar with network protocol implementation using a layered approach and apply basic data communication theory to the design and analysis of networks. Prerequisites: COMP 2825 or COMP 2721 Algorithm Analysis and Design In this hands-on course, Java programming students who have also taken Discrete Math will develop their ability to analyze and design computer algorithms. In particular, learners will analyze the time and space complexity of programs, solve nontrivial programming problems using algorithmic techniques, and prove that their solution is correct. The emphasis will be on developing the practical skills of analysis and design. Topics include: evaluating time and space complexity and designing solutions by using appropriate data structures or applying techniques such as recursion, parsing and graph algorithms. Prerequisites: COMP 2121 and (COMP 2611 or COMP 2613) Object Oriented Analysis and Design This advanced OOAD course follows on from COMP 2831 and is aimed at software analysts, designers and developers who already understand the Software development Life Cycle (SDLC). Through exercises and group work, students first perform Object Oriented Analysis (OOA) to produce a conceptual model of existing information using case studies to identify actors and primary use cases for documentation. Using Object Oriented Design (OOD) students learn how to identify classes and build the domain model. Round trip engineering, reverse engineering and code generation are practised in labs, where the design is converted to functional code. Topics include: design patterns, anti-patterns and General Responsibility Assignment Software Patterns (GRASP). The concepts of phases, iterations, activities and artifacts are emphasized throughout the course. Labs include the use of the Unified Process (UP) which is an extensible framework for iterative and incremental software development process, and the basis of all the modern ldquoAgile methodologiesrdquo. Participants also gain hands-on experience using a case tool, Rational Rose Modeler, to draw most of the Unified Modeling Language (UML) diagrams necessary to support the OOAD activities. Students are introduced to manual and automated software testing. They will learn how to create and execute test scripts using a testing tool. Successful participants will be able to demonstrate the ability to analyse, design and construct sophisticated software applications to industry standards. Prerequisites: COMP 2831 and ability to write executable code in an object oriented programming language. Operating Systems for CST This course replaces COMP 3730 and COMP 4730 and covers the concepts of operating systems. The course is designed for CST Diploma students who understand both C and Java programming. The main focus is on the structure and services of operating systems and how these services are used and implemented. Topics include: processor management, processes and threads, inter-process communication, synchronization, memory management, inputoutput and file management. Labs will include hands-on system programming in UnixLinux. Prerequisites: (COMP 2510 or COMP 2511 or COMP 2717) and (COMP 2721 or COMP 2825) Program Details Graduating amp Jobs Faculty, Advisors amp Staff Contact UsThe denominated currency of the share. Currency Peg A countrys or governments exchange-rate policy of pegging the central banks rate of exchange to another countrys currency. Currency has sometimes also been pegged to the price of gold. Currency pegs allow importers and exporters to know exactly what kind of exchange rate they can expect for their transactions, simplifying trade. Current Liabilities Company declared liabilities which are due to be settled within the current financial year. Current Ratio This is used to calculate the ability of a company to meet its short term debt obligations. It is calculated by dividing its current assets by its current liabilities. The higher the current ratio, the more likely a company will be able to meet its obligations. D Back to top Repayment of bonds or other debt securities on or before their maturity date. RedenominationRenominalisation The process whereby a countrys currency is recalibrated due to significant inflation and currency devaluation. Certain currencies have been redenominated a number of times over the last century for various reasons. A recent example of redenomination was when the euro was introduced and the denomination of many European securities had to be changed to the euro. Registered Security The name given to securities whereby ownership is registered with the issuing company or their agent. Transfer of ownership can only take place with the owners consent. Regulatory News Service (RNS) The London Stock Exchanges service which ensures that price sensitive information from listed companies, and certain other bodies, is distributed to all RNS subscribers at the same time. Relative Strength Index The Relative Strength Index (RSI) measures a share price relative to itself and its recent history. It is calculated as the average of the prices for days where the price rose divided by the average of the prices for days where the price fell. The RSI ranges between 0 and 100. Relevant UK Earnings For most people, this is their salary before tax or, if they are self-employed, their taxable profit. It does not include, for example, interest on savings, dividends on shares or pensions. Relevant UK Individual Includes someone who is resident in the UK at some point in the current tax year or has Relevant UK Earnings. Rematerialisation The process of transferring a security held in electronic form to a certificated form. Retention of Income Accumulation units in a fund do not pay physical dividends. Instead, on the ex-dividend date, the unit price is adjusted upward to reflect the dividend distribution. These adjustments will increase your tax cost for the holding and will appear on your Stock Movements page and your Securities Report as Retention of Income. Retirement Annuity Contract (RAC) Prior to 30th June 1988, people not in pensionable employment (employment where no pension scheme exists) or people who were self employed were able to qualify for tax relief for contributions made to a pension scheme known as a retirement annuity under sections 226 of the Income and Corporation Taxes Act 1970. Although RACs were replaced by personal pension plans from 1st July 1988 those already in force may continue to operate. Return of Capital A return from an investment that is not considered income. The return of capital is when some or all of the money an investor has in an investment is paid back to him or her, thus decreasing the value of the investment. Return on Capital A ratio used in the assessment of the performance of a company and quantifies how well a company generates cash flow relative to the capital it has invested in its business. Return on Capital Employed (ROCE) A measure of the returns that a company is realising from its capital. Calculated as profit before interest and tax divided by the difference between total assets and current liabilities. The resulting ratio represents the efficiency with which capital is being utilised to generate revenue. Rights Issue An offer made by a quoted company to its shareholders to enable them to buy new shares in the company at a discount to the market price. Existing shareholders are usually offered shares in proportion to their existing holding. For example in a one for five rights issue, a shareholder would be invited to buy one new share for every five shares already owned. The new shares are offered at a discount to the current market price. Risk and Reward A ratio used to compare the expected returns of an investment with the amount of risk undertaken to capture these returns. This ratio is calculated mathematically by dividing the amount of profit the investor expects to have made when the position is closed (i.e. the reward) by the amount they could lose if the price moves in an unexpected direction (i.e. the risk). S Back to top The sale date refers to the date on which the holdings were liquidated, or alternatively the target date on which it is planned that the holdings be liquidated. Scrip Dividend The issue of additional shares by a company to shareholders in lieu of a dividend. The shares have an equivalent cash value to the dividend. No dealing charges or stamp duty is payable on the issue of the new shares. Scrip Issue An issue of shares made by a company free of charge to existing shareholders. Also called a bonus issue. The Stock Exchange Automated Quotation system (or SEAQ) is a system for trading mid-cap London Stock Exchange (LSE) stocks. Stocks need to have at least two market-makers to be eligible for trading via SEAQ. Only stocks that are not listed on the FTSE100 can be traded on SEAQ. SEATS Plus SEATS Plus is a trading system that handles the trading of all AIM and listed UK equities whose turnover is insufficient for the market making system or the Stock Exchange Electronic Trading Service (SETS). The sector in which the stock is listed on the London Stock Exchange, for example mining, software and computer services. A financial instrument which represents an ownership position in a publicly traded corporation (stock), a creditor relationship with a governmental body or corporation (bond) or rights to ownership as represented by an option. Self employed People who run their own business and take responsibility for its success or failure. They can decide how, when and where they do their work, but can hire other people to do some or all of the work at their own expense. Self Invested Personal Pension (SIPP) The name given to the type of UK-government-approved personal pension scheme, which allows individuals to make their own investment decisions from the full range of investments approved by HM Revenue Customs (HMRC). SIPPs, in common with personal pension schemes, are tax wrappers, allowing tax rebates on contributions in exchange for limits on accessibility. The HMRC rules allow for a greater range of investments to be held than Personal Pension Plans, notably equities and property. Rules for contributions, benefit withdrawal etc. are the same as for other personal pension schemes. The automated trading system introduced in 1997 for the largest companies quoted on the main list of the London Stock Exchange. Trades through SETS match buyers and sellers automatically, cutting out the need for a market maker, theoretically meaning a narrower bid-offer spread. Settlement Payment of cash for securities bought and delivery of securities against payment. Settlement Date The date by which the buyer of a security must pay the seller. The settlement date depends upon the type of security traded. For example, stocks usually have a settlement date three days after the trade date but government bonds must be settled on the next trading day. Share Certificate A certificate which confirms ownership of a shareholding. If shares are held in certificated form, the certificate must be delivered to the market upon sale. Share Incentive Scheme Introduced to the UK in 2000, they offer employees the opportunity to participate in the success of the company for which they work. Contributions are taken directly from salary before tax and national insurance are deducted with the scheme running for a period of 3 years. After 3 years, the saver has several options available. Firstly, they can buy shares in their company at a pre-determined price and then sell them immediately. Secondly, keep the shares purchased or thirdly have the savings returned in full. Share Option A right to buy or sell shares at an agreed price at a time in the future. Shareholders Funds The capital employed in a company, calculated by deducting the book value of the liabilities from the book value of the assets. Also called net assets, net worth and shareholders equity. A unit of ownership in a corporation or financial asset. While owning shares in a business does not mean that the shareholder has direct control over the businesss day-to-day operations, being a shareholder does entitles them to an equal distribution in any profits, if any are declared in the form of dividends. A share can be quoted or unquoted and ordinary or preference shares. Shell Company Non-trading firm formed (and often listed on a stock exchange) as a vehicle to (1) raise funds before starting operations, (2) attempt a takeover, (3) prepare for a public offering of shares, or (4) provide a front for an illegal business. The selling of a security that the seller does not own, or any sale that is completed by the delivery of a security borrowed by the seller. Short sellers assume that they will be able to buy the stock at a lower amount than the price at which they sold short. Small Cap Stock A small-cap stock has a low market capitalisation when compared to those listed on the FTSE100. Investors may perceive a small-cap stock as having greater growth potential than a large-cap stock. A small-cap stock may be more likely than a large company to adopt or create innovative new technologies or services. A small-cap stock often has a lower level of institutional interest, as many funds have limits on the percentage of a company they may own. This in turn increases the trading volatility of a small-cap stock, potentially allowing for more extreme (more profitable) entries and exits. Small Self Administered Scheme (SSAS) A SSAS is a company pension scheme where the members are usually all company directors or key staff. A SSAS is set up by a trust deed which allows membersemployers greater flexibility and control over the schemes assets. The difference between which the price of a stock is bought and sold. Some collective investments, such as Unit Trusts, also operate bidoffer spreads. Stakeholder Pension Plan Stakeholder pensions aim to provide a low-cost, transparent and flexible way for people on low incomes to make additional provisions for their retirement. Money invested in stakeholder pensions is invested in the stock market. On retirement a quarter of the accumulated capital can be taken as a tax-free cash sum, with the balance to be used to purchase an annuity. Stamp Duty Stamp duty is payable on purchases of shares using a stock transfer form, on some transfers of interest in partnerships and on land or property tansactions entered into before 1 Dec 2003. Stamp Duty Reserve Tax (SDRT) SDRT is a tax on shares and securities when you buy through the stock market or a stock broker. Standard Poors An international agency which provides credit ratings and research. State Earnings Related Pension Scheme (SERPS) Introduced in 1978, SERPS was a top up to the basic state pension with the amount received dependent upon the National Insurance Contributions paid. In 2002 it became the State Second Pension. Stepped Preference Shares Preference shares with dividends that increase annually by a specified amount and with a predetermined capital return. Stock Description The name and classification of the security held. The company name is detailed first followed by the abbreviated version of the type of share held (e.g. ORD means Ordinary Share) and then the currency that the share is held in (e.g GBP sterling) Stock Exchange Daily Official List (SEDOL) A unique identifier assigned to all securities trading on the London Stock Exchange and other smaller exchanges in the UK. The SEDOL is seven characters in length and comprises a combination of letters and numbers. Live streaming of share prices is available when logged in and when the portfolio is ordered by holding alphabetically, rather than by a numeric value (which would cause the order of rows to change constantly). The prices you see are those that the traders see on their trading screens. An arrangement of characters (usually letters) representing a particular security listed on an exchange or otherwise traded publicly. When a company issues shares for the first time, it selects an arrangement of characters (usually letters) representing a particular security listed on an exchange or otherwise traded publicly. When a company issues shares for the first time, it selects an available ticker symbol for its securities which is then used to place orders - each symbol is unique. For example, the shares for Microsoft are listed as MSFT. T Back to top A corporate action where one company makes a bid for another. If the target company is publicly traded, the acquiring company will make an offer for the outstanding shares. HMRC apply a number of rules when determining the cost for UK tax purposes. The Tax Cost represents the cost of the holding once such rules have been applied. A FTSE index launched in 1999 by the London Stock Exchange to reflect the growth at that time in internet and technology stocks. To be included, a company must be committed to technological innovation and listed on the exchange. It includes biotechnology companies as well as internet stocks and software companies. The TechMARK 100 is a subset of the TechMARK all-share and both have an upper market cap limit so as to exclude the largest companies. Tender offer An offer to purchase some or all of shareholders shares in a corporation. The price offered is usually at a premium to the market price. Terminal Illness An advanced or rapidly progressing incurable illness. In the opinion of an attending consultant andor Chief Medical Officer the life expectancy of the sufferer would be no more than 12 months. Tax Exempt Special Savings Account a former tax-free savings scheme(available 1991-99). Total Expense Ratio The Total Expense Ratio (TER) accounts for all the costs in running an investment fund. As well as the Annual Management Charge, the TER would include trading fees, legal fees, auditor fees and other operational expenses. The TER is expressed as a percentage and is calculated by dividing the monetary cost of running the fund by the funds total assets. Tracker Fund An index fund that tracks a broad market index or a segment of it. Such a fund invests in all, or a representative number, of the securities within the index. Also know as an index fund. Trade Cut-off The time by which you must place your trade on the website in order for it to execute within the next available valuation point. Trade Price The last known trading price. Trade Time The time at which the last deal for the security was completed. Trade Type The coding applied to the trade confirming the transaction that has been completed. A - An automatic trade generated by the system through automatic execution. U - Uncrossing Trade - this is used for the single uncrossing trade, detailing the total executed volume and uncrossing price as a result of a SETS auction. N - Negotiated Trade - LSE uses an Automated Trading Service (ATS) to execute our real-time online deals. Restrictions imposed by the ATS may mean that certain stocks or order sizes cannot be traded automatically. If this is the case then you will be given the option to place a Negotiated Trade order. The order will be forwarded electronically and securely to our dealing team. They will manually execute your order as soon as possible and at the best price available in the market at the time of dealing. O - Ordinary Trade - the transaction that was not covered by any of the other trade types listed. T - Over the Counter Trade - a security which is not traded on an exchange, usually due to an inability to meet listing requirements. S - Systematic Internalises - are obliged to publish prices for trading with their customers and are allowed to improve prices when dealing in retail size or with retail clients. CT - The trade reported for a transaction previously executed automatically through the order book. LC - Late Correction - the error trade reported that has been last corrected. OC - OTC Trade correction. SC - SI trade Correction. Trade Volume The quantity of the security traded at the last known price. Transfer Value The monetary amount available which can be moved to another financial product. For example, the proceeds of a Cash ISA can be transferred to a Stocks and Shares ISA. Refers to the direction of security prices. An uptrend is a succession of higher highs and higher lows. A downtrend is a succession of lower highs and lowers lows. Trends are classified as Major (one year or longer), Intermediate (one to six months) and Minor (one month or less). U Back to top Underlying Asset In a derivative or warrant, the security, property, or other asset that gives value to the derivative or warrant. For example, in an option giving the right to buy stock in a share, the underlying asset is the share. An underlying asset may mean many things, such as a physical commodity, a security, a piece of land, or part of a business. Unit Price Latest price of fund holdings. Unit Trust Unit trusts are collective funds that allow private investors to pool their money in a single fund, thus spreading their risk across a range of investments, getting the benefit of professional fund management, and reducing their dealing costs. Unit trusts are open-ended in contrast to investment trusts, which are closed funds. Different trusts have different investment objectives: for example investing for income or growth, in small companies or large, and in different geographical regions. Unquoted Shares Unquoted shares are shares which are not traded on stock exchanges or other regulated financial markets. The current value of the total number of shares listed for the security. Value Investing The strategy of selecting stocks that trade for less than their intrinsic values. Value investors actively seek stocks of companies that they believe the market has undervalued. They believe the market overreacts to good and bad news, resulting in stock price movements that do not correspond with the companys long-term fundamentals. The result is an opportunity for value investors to profit by buying when the price is deflated. View as Pop-Out A comprehensive view of the investments in your account. Volatility The extent to which the price of a security or commodity, or the level of a market, interest rate or currency, changes over time. High volatility implies rapid and large upward and downward movements over a relatively short period of time low volatility implies much smaller and less frequent changes in value. The amount of trading sustained in a security or in the entire market during a given period. Especially heavy volume may indicate that important news has just been announced or is expected. W Back to top The W-8BEN form is provided by the United States Internal Revenue Service (IRS), and its purpose is to allow non-US persons to receive a reduced rate of taxation on any US-sourced income. For the purposes of share-dealing, US-sourced income refers to income (dividends, interest etc) received from businesses registered or incorporated within the US. If you require a W-8BEN form or a replacement W-8BEN form, please contact us and we will issue you one, alternatively you can download the form here. For an example of how to complete the W-8BEN please see here. A certificate, usually issued along with a bond or preferred stock, entitling the holder to buy a specific amount of securities at a specific price at some point in the future. The set price is usually higher than the price of the security at the time the warrant is issued. In the case that the price of the security rises to above that of the warrants exercise price, then the investor can buy the security at the warrants exercise price and resell it for a profit. Otherwise, the warrant will simply expire or remain unused. Warrants are listed on options exchanges and trade independently of the security with which they are issued. The percentage of the investment applied to your basket of funds. X Back to top Charles Stanley Direct is a trading name of Charles Stanley amp Co. Limited. Registered in England No 1903304. Registered Office: 55 Bishopsgate, London EC2N 3AS. Authorised and regulated by the Financial Conduct Authority (No. 124412). Member of the London Stock Exchange. Prices, News and Fundamentals provided by Thomson Reuters. Investors should be aware that past performance is not a reliable indicator of future results and that the price of shares and other investments, and the income derived from them, may fall as well as rise and the amount realised may be less than the original sum invested. Capital at risk. Income derived may fall or rise and you may get back less than invested.
Scottrade-pilihan
Pokemon-trading-card-game-online-starter-deck