24 Nis 2024 SQL Server'da T-SQL Kullanarak Log Dosyalarını Temizleme Kategori: SQL Server Etiketler: SQL ServerSQL Server 2005SQL Server 2008SQL Server 2012T-SQL 73 Yorum SQL Server'daki log dosyaları, veritabanı işlemlerinin izlenmesi ve geri alınabilir durumun korunması için kullanılır. Ancak, log dosyaları zamanla büyüyebilir ve disk alanını tüketebilir. Bu nedenle, log dosyalarını periyodik olarak temizlemek önemlidir. Bu makalede, SQL Server'da T-SQL kullanarak log dosyalarını nasıl temizleyeceğinizi adım adım göstereceğiz.1. Log Dosyası Yedeklemeyi Etkinleştirmeİlk adım olarak, log dosyalarını temizlemeden önce, log dosyalarını yedeklemeniz gerekmektedir. Bu, veri bütünlüğünü korumak için önemlidir. SQL Server Management Studio veya T-SQL kullanarak log yedeklemeyi etkinleştirebilirsiniz.BACKUP LOG [DatabaseName] TO DISK = 'BackupPath' WITH INIT2. Log Dosyasını TemizlemeLog dosyasını temizlemek için aşağıdaki T-SQL komutunu kullanabilirsiniz:USE SemGoksuComGOALTER DATABASE SemGoksuCom SET RECOVERY SIMPLE WITH NO_WAITDBCC SHRINKFILE(SemGoksuCom_log)ALTER DATABASE SemGoksuCom SET RECOVERY FULL WITH NO_WAIT Bu komut, belirli bir veritabanının log dosyasını temizler. DatabaseName ve DatabaseLogFileName değerlerini kendi veritabanınızın adı ve log dosyasının adıyla değiştirmeniz gerekmektedir.3. Otomatik Log Temizleme Planı OluşturmaLog dosyalarını düzenli olarak temizlemek için bir otomatik plan oluşturabilirsiniz. SQL Server Agent kullanarak bu işlemi yapabilirsiniz. Günlük, haftalık veya aylık olarak log temizleme planınızı yapılandırabilirsiniz.4. Dikkat Edilmesi GerekenlerLog dosyasını temizleme işleminden önce, log dosyasını yedeklemeniz önemlidir.Log dosyasını temizleme işlemi, disk üzerindeki boş alanı artırır, ancak log dosyasının tamamen sıfırlanmasını garanti etmez.Log dosyasını temizleme işleminin yüksek trafik saatlerinde gerçekleşmediğinden emin olun.Bu adımları takip ederek, SQL Server'daki log dosyalarını düzenli olarak temizleyebilir ve disk alanınızı optimize edebilirsiniz.
24 Nis 2024 T-SQL Kullanarak Tüm Veritabanlarının Yedeklerini Alma Kategori: SQL Server Etiketler: SQL ServerSQL Server 2005SQL Server 2008SQL Server 2012T-SQL 45 Yorum SQL Server'da veritabanlarının yedeklerini almak, veri kaybını önlemenin ve felaket kurtarma planınızı güçlendirmenin önemli bir parçasıdır. Tüm veritabanlarının yedeklerini almak için T-SQL kullanarak otomatik bir süreç oluşturabilirsiniz. Bu makalede, SQL Server'da T-SQL kullanarak tüm veritabanlarının yedeklerini nasıl alacağınızı adım adım göstereceğiz.1. Tüm Veritabanlarını Listelemeİlk adım olarak, SQL Server'daki tüm veritabanlarını listelemeniz gerekmektedir. Bunun için aşağıdaki sorguyu kullanabilirsiniz:SELECT nameFROM sys.databasesWHERE name NOT IN ('master', 'tempdb', 'model', 'msdb')Bu sorgu, master, tempdb, model ve msdb veritabanlarını hariç tutarak tüm kullanıcı veritabanlarını listeler.2. Yedek Alma İşlemiŞimdi, listedeki her bir veritabanı için yedek alma işlemini gerçekleştireceğiz. Aşağıdaki T-SQL komutu bu işlemi yapacaktır:DECLARE @DBName NVARCHAR(255)DECLARE @BackupPath NVARCHAR(500)DECLARE @BackupFileName NVARCHAR(500)DECLARE @SQL NVARCHAR(MAX)SET @BackupPath = 'C:\Backup\' -- Yedeklerin saklanacağı dizini belirtinDECLARE DBNameCursor CURSOR FORSELECT name FROM sys.databasesWHERE name NOT IN ('master', 'tempdb', 'model', 'msdb')OPEN DBNameCursorFETCH NEXT FROM DBNameCursor INTO @DBNameWHILE @@FETCH_STATUS = 0BEGIN SET @BackupFileName = @BackupPath + @DBName + '_' + REPLACE(CONVERT(NVARCHAR(20), GETDATE(), 120), ':', '') + '.bak' SET @SQL = 'BACKUP DATABASE ' + QUOTENAME(@DBName) + ' TO DISK = ''' + @BackupFileName + ''' WITH FORMAT' EXEC(@SQL) FETCH NEXT FROM DBNameCursor INTO @DBNameEND CLOSE DBNameCursorDEALLOCATE DBNameCursorBu komut, her bir veritabanını alır ve belirtilen yedek dizinine o veritabanının adını ve geçerli tarihi içeren bir yedek dosyası oluşturur.3. Otomatik Yedekleme Planı OluşturmaTüm veritabanlarının düzenli olarak yedeklerini almak için bir otomatik yedekleme planı oluşturmak önemlidir. SQL Server Agent kullanarak bu işlemi yapabilirsiniz. Günlük, haftalık veya aylık olarak yedekleme planınızı yapılandırabilirsiniz.4. Dikkat Edilmesi GerekenlerYedekleri saklayacağınız disk alanının yeterli olduğundan emin olun.Yedekleme işlemlerinin yüksek trafik saatlerinde gerçekleşmediğinden ve sistem performansını etkilemediğinden emin olun.Yedekleme işleminden önce veritabanı dosyalarınızın bütünlüğünü kontrol edin.Bu adımları takip ederek, SQL Server'daki tüm veritabanlarının düzenli olarak yedeklerini alabilir ve veri kaybını en aza indirebilirsiniz.Bu makale, SQL Server'daki tüm veritabanlarının yedeklerini almak için temel bir rehber sağlar. İhtiyaçlarınıza ve ortamınıza bağlı olarak, işlemleri özelleştirebilirsiniz.
24 Nis 2024 T-SQL Kullanarak Tüm Indexleri Yeniden Oluşturma Kategori: SQL Server Etiketler: SQL ServerSQL Server 2008SQL Server 2012T-SQL 45 Yorum SQL Server'da indexler, veritabanı performansını artırmak için önemli bir rol oynar. Ancak zamanla, veri değişiklikleri nedeniyle indexlerin etkinliği azalabilir. Bu durumda, indexleri yeniden oluşturarak veritabanı performansını optimize etmek mümkündür. Bu makalede, T-SQL kullanarak SQL Server'da tüm indexleri nasıl yeniden oluşturacağınızı öğreneceksiniz.1. Index Durumunu Belirlemeİlk adım olarak, hangi indexlerin yeniden oluşturulması gerektiğini belirlemelisiniz. Bunun için aşağıdaki sorguyu kullanabilirsiniz:SELECT OBJECT_NAME([object_id]) AS TableName, name AS IndexName, avg_fragmentation_in_percentFROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'SAMPLED')WHERE avg_fragmentation_in_percent > 10Bu sorgu, fragmentasyon oranı %10'dan fazla olan indexleri listeler. Ancak bu değeri ihtiyaçlarınıza göre ayarlayabilirsiniz.2. Indexleri Yeniden OluşturmaYeniden oluşturulması gereken indexleri belirledikten sonra, aşağıdaki T-SQL komutunu kullanarak indexleri yeniden oluşturabilirsiniz:DECLARE @TableName NVARCHAR(255)DECLARE @IndexName NVARCHAR(255)DECLARE @SQL NVARCHAR(MAX)DECLARE IndexCursor CURSOR FORSELECT OBJECT_NAME([object_id]) AS TableName, name AS IndexNameFROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'SAMPLED')WHERE avg_fragmentation_in_percent > 10OPEN IndexCursorFETCH NEXT FROM IndexCursor INTO @TableName, @IndexNameWHILE @@FETCH_STATUS = 0BEGIN SET @SQL = 'ALTER INDEX ' + @IndexName + ' ON ' + @TableName + ' REBUILD' EXEC(@SQL) FETCH NEXT FROM IndexCursor INTO @TableName, @IndexNameENDCLOSE IndexCursorDEALLOCATE IndexCursor3. Otomatik Bakım Planı OluşturmaIndexleri düzenli olarak yeniden oluşturmak için bir otomatik bakım planı oluşturmak en iyisidir. SQL Server Management Studio veya SQL Server Agent kullanarak bu işlemi gerçekleştirebilirsiniz. Günlük, haftalık veya aylık olarak index bakımını planlayabilirsiniz.4. Dikkat Edilmesi GerekenlerIndexleri yeniden oluşturmadan önce, veritabanınızın yüksek trafik saatlerinde olmadığından emin olun.Yeniden oluşturma işlemi, büyük veritabanları için zaman alabilir. Bu nedenle, bakım işlemlerini dikkatlice planlayın.Indexleri yeniden oluşturmadan önce, veritabanınızın yedeğini almayı unutmayın.Bu adımları takip ederek, SQL Server'da indexleri etkin bir şekilde yönetebilir ve veritabanı performansınızı optimize edebilirsiniz.Bu makaledeki adımlar, SQL Server'da indexleri yeniden oluşturmak için temel bir rehber sağlar. İhtiyaçlarınıza ve ortamınıza bağlı olarak, işlemleri özelleştirebilirsiniz.
10 Ara 2021 EPPlus Excel Tarih Formatlama Kategori: C#.NET Etiketler: ASP.NETC# 45 Yorum ExcelPackage excel = new ExcelPackage(); var workSheet = excel.Workbook.Worksheets.Add("ExcelSheet"); workSheet.TabColor = System.Drawing.Color.Black; workSheet.DefaultRowHeight = 12; //Header of table // workSheet.Row(1).Height = 20; workSheet.Row(1).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; workSheet.Row(1).Style.Font.Bold = true; workSheet.Cells[1, 1].Value = "Tarih"; //Body of table // int recordIndex = 2; foreach (var item in data) { workSheet.Cells[recordIndex, 1].Style.Numberformat.Format = "dd.MM.yyyy"; workSheet.Cells[recordIndex, 1].Formula = string.Format("=DATE({0},{1},{2})", item.IslemTarihi.Year, item.IslemTarihi.Month, item.IslemTarihi.Day); recordIndex++; } workSheet.Column(1).AutoFit(); using (var memoryStream = new MemoryStream()) { Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AddHeader("content-disposition", "attachment; filename=TarihOrnek.xlsx"); excel.SaveAs(memoryStream); memoryStream.WriteTo(Response.OutputStream); Response.Flush(); Response.End(); }
09 Eki 2021 ASP.NET ile HTML'den PDF'e Çevirme İşlemi Kategori: ASP.NET Etiketler: ASP.NETASP.NET 4.0C# 4.0 45 Yorum HTML'den PDF'e dönüşüm işlemini "wkhtmltopdf" ile çok basit bir şekilde yapabiliyoruz. public static string HtmlToPdf(string pdfOutputLocation, string outputFilenamePrefix, string[] urls, string[] options = null, string pdfHtmlToPdfExePath = "C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe") { string urlsSeparatedBySpaces = string.Empty; try { //Determine inputs if ((urls == null) || (urls.Length == 0)) throw new Exception("No input URLs provided for HtmlToPdf"); else urlsSeparatedBySpaces = String.Join(" ", urls); //Concatenate URLs string outputFolder = pdfOutputLocation; string outputFilename = outputFilenamePrefix + ".PDF"; // assemble destination PDF file name var p = new System.Diagnostics.Process() { StartInfo = { FileName = pdfHtmlToPdfExePath, Arguments = ((options == null) ? "" : String.Join(" ", options)) + " " + urlsSeparatedBySpaces + " " + outputFilename, UseShellExecute = false, // needs to be false in order to redirect output RedirectStandardOutput = true, RedirectStandardError = true, RedirectStandardInput = true, // redirect all 3, as it should be all 3 or none WorkingDirectory = HttpContext.Current.Server.MapPath(outputFolder) } }; p.Start(); // read the output here... var output = p.StandardOutput.ReadToEnd(); var errorOutput = p.StandardError.ReadToEnd(); // ...then wait n milliseconds for exit (as after exit, it can't read the output) p.WaitForExit(100000); // read the exit code, close process int returnCode = p.ExitCode; p.Close(); // if 0 or 2, it worked so return path of pdf if ((returnCode == 0) || (returnCode == 2)) return outputFolder + outputFilename; else throw new Exception(errorOutput); } catch (Exception exc) { throw new Exception("Problem generating PDF from HTML, URLs: " + urlsSeparatedBySpaces + ", outputFilename: " + outputFilenamePrefix, exc); } }Kullanırken de aşağıdaki gibi çağırabiliriz.Parametreler hakkında bilgileri aşağıda bulabilirsiniz.1. Parametre: PDF'in kaydedileceği klasör.2. Parametre: PDF dosyasının adı.3. Parametre: Hangi URL'in PDF'i oluşturulacaksa belirtiyoruz.HtmlToPdf("/uplodas/", "PDFDosyasiAdi", new string[] { "http://www.semgoksu.com" });