http___prografibilisim.blogspot.com.tr_2015_04__1.xml
1.1 2.1 3.1 4.1 5.1 6.1 7.1 8.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 16.1 17.1 18.1 19.1 20.1 21.1 22.1 23.1 24.1 25.1 26.1 27.1 28.1 29.1 30.1 31.1 32.1 33.1 34.1 35.1 36.1 37.1 38.1 39.1 40.1 41.1 42.1 43.1 44.1 46.1 46.2 48.1 48.2 50.1 50.2 52.1 52.2 53.1 53.2 54.1 55.1 56.1 57.1 58.1 59.1 60.1 61.1 62.1 63.1 64.1 65.1 66.1 67.1 68.1 69.1 69.2 70.1 71.1 72.1 73.1 74.1 75.1 76.1 77.1
This set of SQL Server Multiple Choice Questions & Answers (MCQs) focuses on “Data Compression”. Which of the following compression type is supported by SQL Server 2014 ? a) Row b) Column c) Both row and column d) None of the mentioned View Answer Explanation: SQL Server 2014 supports columnstore and columnstore archival compression for columnstore tables and indexes. Point out the correct statement : a) The details of data compression are subject to change without notice in service packs or subsequent releases b) Compression is not available for system tables c) If you specify a list of partitions or a partition that is out of range, an error will be generated d) All of the mentioned View Answer Explanation: These are considerations made before using row and page compression. Use _________ data compression to compress columnstore data with archival compression. a) COLUMNSTOREARCHIVE b) COLUMNSTORE_ARCHIVE c) COLUMNSTORE d) All of the mentioned View Answer Explanation: To perform archival compression, SQL Server runs the Microsoft XPRESS compression algorithm on the data. To remove archival compression and restore the data to columnstore compression : a) Use ALTER TABLE b) Use ALTER COLUMN c) Use ALTER DATABASE d) All of the mentioned View Answer Explanation: use ALTER TABLE (Transact-SQL) or ALTER INDEX (Transact-SQL) with the REBUILD option and DATA COMPRESSION = COLUMNSTORE. Point out the wrong statement : a) You can enable or disable ROW or PAGE compression in online state only b) When you are compressing indexes, leaf-level pages can be compressed with both row and page compression c) Non–leaf-level pages do not receive page compression d) None of the mentioned View Answer Explanation: Enabling compression on a heap is single threaded for an online operation. The data_compression and data_compression_desc columns include : a) COLUMNSTOREARCHIVE b) COLUMNSTORE_ARCH c) COLUMNSTORE d) None of the mentioned View Answer Explanation: The type and type_desc columns include CLUSTERED COLUMNSTORE and NONCLUSTERED COLUMNSTORE. Which of the following code is used to enable compression on a table ? EXEC sp_estimate_compression_savings 'Production', 'TransactionHistory', NULL, NULL, 'ROW' ; ALTER TABLE Production. TransactionHistory REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = ROW); EXEC sp_estimate_compression_savings 'Production', 'TransactionHistory', NULL, NULL, 'ROW' ; ALTER TABLE Production. TransactionHistory REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = ROW); EXEC sp_estimate_compression_savings 'Production', 'TransactionHistory', NULL, NULL, 'ROW' ; ALTER TABLE Production. TransactionHistory BUILD PARTITION = ALL WITH (DATA_COMPRESSION = ROW); EXEC sp_estimate_compression 'Production', 'TransactionHistory', NULL, NULL, 'ROW' ; ALTER TABLE Production. TransactionHistory REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = ROW); Explanation: The following query first executes the stored procedure sp_estimate_data_compression_savings to return the estimated size of the object if it were to use the ROW compression setting. The example then enables ROW compression on all partitions in the specified table. What is the purpose of schema name in the following code syntax ? sp_estimate_data_compression_savings [ @schema_name = ] 'schema_name' , [ @object_name = ] 'object_name' , [@index_id = ] index_id , [@partition_number = ] partition_number , [@data_compression = ] 'data_compression' [;] a) Name of the table b) Name of the database schema c) Name of the indexed view d) All of the mentioned View Answer Explanation: If schema_name is NULL, the default schema of the current user is used. sp_estimate_data_compression_savings requires ______ permission on the table. a) UPDATE b) SELECT c) DELETE d) None of the mentioned View Answer Explanation: Use sp_estimate_data_compression_savings to estimate the savings that can occur when you enable a table or partition for row or page compression. Which of the following query estimates the size of the Production. WorkOrderRouting table if it is compressed by using ROW compression ? a) EXEC sp_estimate_data_compression_savings ‘Production’, ‘WorkOrderRouting’, NULL, NULL, ‘ROW’ ; b) EXEC sp_estimate_data_compression_savings ‘Production’, ‘WorkOrderRouting’, NULL, 1, ‘ROW’ ; c) EXEC sp_estimate_data_compression_savings ‘Production’, ‘WorkOrderRouting’, 1, NULL, ‘ROW’ ; d) EXEC sp_estimate_data_compression_savings ‘Production’, ‘WorkOrderRouting’, NULL, NULL, ‘COLUMN’ ; View Answer Explanation: To estimate the size of the object if it were to use the requested compression setting, this stored procedure samples the source object and loads this data into an equivalent table and index created in tempdb. Sanfoundry Global Education & Learning Series – SQL Server. To practice all areas of SQL Server, here is complete set of 1000+ Multiple Choice Questions and Answers.
1.1 2.1 3.1 4.1 5.1 6.1 7.1 8.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 16.1 17.1 18.1 19.1 20.1 21.1 22.1 23.1 24.1 25.1 26.1 27.1 28.1 29.1 30.1 31.1 32.1
Sql Server performansını arttıracak en önemli etmenlerden biri de veri sıkıştırmasının yapılmasıdır. Aslına bakarsanız her zaman performans sağlanır diyemeyiz ama doğru yerde seçildiğinde performansı arttırıcı özelliği vardır. Sql Server’da veriler her biri 8 Kb olan page’lerde tutulur. Doğal olarak bir sorgu çekildiğine ilgili veriler ne kadar fazla sayfaya dağılmışsa sorgu sonucu o kadar geç döner. Veriler sıkıştırıldığında daha az sayfa gezileceğinden performans artar. Fakat verinin alakasız bir şekilde irili ufaklı büyüyüp küçülmesi işlemlerinde verilerin düzeltilmesi(uncompress) gerekeceğinden bu tip durumların çok olduğu sistemlerde tercih edilmemelidir. Sql Server iki tip veri sıkıştırmasını destekler. Row Level Compression Page Level Compression Row Level Compression Aslına bakarsanız fiziksel bir sıkıştırma söz konusu değildir. Sadece verinin büyüklüğüne göre verinin kapladığı alan “fixed length”den “variable length”e dönüştürülür. Örneğin siz bir kolona Char(100) veri tipini verdiyseniz bu kolon için veri satırında 100 byte lık alan ayrılır. Halbuki siz “Engin Demiroğ” değerini tutmak isterseniz 13 bytelık alan dolar, gerisi boş kalır. Bir örnek de int veri türü için verelim. Normalde siz int bir kolonda ne tutarsanız tutun 4 byte harcanır. Çünkü “int” fixed length bir veri türüdür. Halbuki “100” değerini tutmak için 1 byte yeterlidir. İşte bu gibi gereksiz veri depolama dezavantajlarını row-level compression yaparak ortadan kaldırabilirsiniz. Row-Level Compression’ın en güzel avantajlarından biri de “null” veriler için diskte ciddi bir yer kaplatmamasıdır. Row-Level Compression table,index ve partitionlara uygulanabilir. Row Level Compression’a ihtiyacınız olduğunu anlamak içinçok güzel bir SP’miz var.“sp_estimate_data_compression_savings”. Bu SP ile sıkıştırmadan önceki ve sonraki tahmini örnek büyüklük size gösterilir. Kullanımı aşağıdaki gibidir. - sp_estimate_data_compression_savings - 'dbo','Orders',NULL,NULL,'ROW' Bu sorguda “dbo” şemanız, “Orders” objeniz ve “Row” ise sıkıştırma yönteminizdir. Sonuç aşağıdaki gibidir. Bazı yerlerde ciddi bir sıkıştırmanın olduğunu farketmişsinizdir. Bir objeye Row-Level Compression uygulamak için aşağıdaki koddan yararlanmanız yeterlidir. - ALTER TABLE dbo.Orders REBUILD - WITH (DATA_COMPRESSION = ROW) Page-Level Compression Bu sıkıştırma yöntemi Row-Level’a göre daha performanslıdır. Nedeni Dictionary Temelli Sıkıştırma algoritmasını kullanmasıdır. Bir sayfada bulunan verilerde aynı değerler var ise, değeri tekrarlamaktansa pointer bırakıp değerin adresini tutar. Aşağıdaki tablo verilerine baktığımızda OrderID kolonunda Clustered Index olduğunu düşünürsek, bu verilerin aynı veri sayfalarında barındığını anlarız. Page-Level Compression kullanıldığında ciddi bir sıkıştırmanın olacağı aşikardır. Bir önceki örnekte Row-Level Compression yapmıştık. Buna ragmen sıkıştırmanın yine de gerçekleşeceğini “sp_estimate_data_compression_savings” ispatlayalım. - sp_estimate_data_compression_savings - 'dbo','Orders',NULL,NULL,'PAGE' Bir objeye Page-Level Compression uygulamak için aşağıdaki koddan yararlanmanız yeterlidir. - ALTER TABLE dbo.Orders REBUILD - WITH (DATA_COMPRESSION = PAGE) Faydalı olması dileğiyle. Engin Demiroğ,MCT,engin@yazilimDevi.com Makalenin Kaynağı: